1 TimesTenが提供するPL/SQLパッケージおよびタイプの概要
TimesTenにはPL/SQLパッケージのセットが付属しています。これらのパッケージによって、データベース機能が拡張され、SQL機能へのPL/SQLアクセスが可能になります。
このマニュアルでは、これらのパブリック・パッケージについて説明します(TimesTenが提供するPL/SQLパッケージの概要で簡単に説明しています)。PL/SQL言語自体の一部であるパッケージ、あるいは、TimesTenまたはOracle Database内部でのみ使用されるパッケージは示しておらず、このマニュアルでは説明していません。
この章の内容は次のとおりです。
PL/SQLおよびPL/SQLパッケージの詳細は、次を参照してください。
パッケージの概要
パッケージとは、関連するプログラム・オブジェクトをカプセル化した集合体で、データベースにまとめて格納されています。プログラム・オブジェクトには、プロシージャ、ファンクション、変数、定数、カーソルおよび例外があります。
このセクションの内容は次のとおりです。
パッケージのコンポーネント
PL/SQLパッケージには、仕様部と本体の2つの部分がありますが、本体は不要な場合もあります。
仕様部はアプリケーションへのインタフェースです。使用可能なタイプ、変数、定数、例外、カーソルおよびサブプログラムを宣言します。本体はカーソルとサブプログラムを完全に定義し、仕様部を完全に実装します。
パッケージは、サブプログラムとは異なり、コール、パラメータ化またはネスト化することはできません。ただし、パッケージおよびサブプログラムのフォーマットは類似しています。
CREATE PACKAGE name AS -- specification (visible part)
-- public type and item declarations
-- subprogram specifications
END [name];
CREATE PACKAGE BODY name AS -- body (hidden part)
-- private type and item declarations
-- subprogram bodies
[BEGIN
-- initialization statements]
END [name];
仕様部には、アプリケーションで参照できるパブリック宣言が含まれています。本体には、実装の詳細およびプライベート宣言が含まれていますが、アプリケーションからは参照できません。仕様部を変更せずに、パッケージ本体をデバッグ、拡張または置換できます。パッケージ本体の実装の詳細はアプリケーションから隠されているため、コール元プログラムを再コンパイルせずに、パッケージ本体を変更できます。
TimesTenが提供するパッケージのリストの表示
現在TimesTenにインストールされているパッケージ一覧を表示するには、SYS
が所有するオブジェクトについて、システム・ビューのALL_PROCEDURES
を使用します。
次の例では、ttIsql
を使用してこれを示します。他のALL_*
システム・ビューの場合と同様、すべてのユーザーには、ALL_PROCEDURES
システム・ビューに対するSELECT
権限があります。
Command> select distinct object_name from all_procedures where owner='SYS';
< DBMS_LOB >
< DBMS_LOCK >
< DBMS_OUTPUT >
< DBMS_PREPROCESSOR >
< DBMS_RANDOM >
< DBMS_SQL >
...
< DBMS_UTILITY >
...
< TT_STATS >
< UTL_FILE >
< UTL_RAW >
< UTL_RECOMP >
< UTL_IDENT >
< TT_DB_VERSION >
19 rows found.
TimesTenが提供するパッケージの使用
TimesTenが提供するパッケージは、データベースが作成されるときに自動的にインストールされます。
すべてのユーザーには、UTL_RECOMP
およびUTL_FILE
(それぞれの章を参照)を除く、このマニュアルで説明するパッケージに対するEXECUTE
権限があります。
PL/SQLファンクションで定義されたビューを検索するには、そのビューのSELECT
権限が必要です。ビューを検索するには個々のEXECUTE
権限は必要ありません。パッケージに関する特別要件については、それぞれの章の記述を参照してください。
ノート:
TimesTenでは、インスタンス管理者として実行することは、Oracle DatabaseユーザーSYSDBA
として実行することに相当します。ADMIN
ユーザーとして実行することは、Oracle DatabaseユーザーDBA
として実行することに相当します。
パッケージ内容の参照
パッケージ仕様部で宣言されたタイプ、アイテムおよびサブプログラムを参照するには、ドット表記法を使用します。
たとえば:
package_name.type_name
package_name.item_name
package_name.subprogram_name
TimesTenが提供するPL/SQLパッケージの概要
一般利用のためにTimesTenで提供されるPL/SQLパッケージのリスト。これらのパッケージは、パッケージ所有者ではなく起動ユーザーとして実行されます。
ノート:
-
これらのパッケージが提供するプロシージャとファンクションおよびその外部インタフェースはOracle Databaseに付属するもので、変更される可能性があります。
-
提供されたパッケージを変更しないでください。提供されたパッケージを変更すると、内部エラーおよびデータベースのセキュリティ違反が発生する可能性があります。
表1-1 TimesTenが提供するPL/SQLパッケージの概要
パッケージ名 | 説明 |
---|---|
バイナリ・ラージ・オブジェクトおよびキャラクタ・ラージ・オブジェクト(BLOB、CLOBおよびNCLOB)で動作するサブプログラムを提供します。 |
|
ロック管理サービスへのインタフェースを提供します。TimesTenでは、指定した期間セッションを一時停止する |
|
ストアド・プロシージャおよびパッケージからメッセージを送信できます。 |
|
後処理された形式でPL/SQLユニットのソース・テキストの出力または取出しを行うためのインタフェースを提供します。 |
|
組込み式の乱数ジェネレータを提供します。 |
|
動的SQLを使用してデータベースへのアクセスを可能にします。 |
|
様々なユーティリティ・ルーチンを提供します。 |
|
TimesTenのメジャーおよびマイナー・バージョン番号を示します。 |
|
データベース・メトリックのスナップショットを収集し、スナップショット間の比較に基づくレポートを生成します。 |
|
PL/SQLプログラムで、オペレーティング・システムのテキスト・ファイルの読込みおよび書込みを可能にし、標準オペレーティング・システムのストリーム・ファイルI/Oの制限付きバージョンを提供します。 |
|
PL/SQLを実行しているのがデータベースなのかクライアントなのか(TimesTenとOracle Database、サーバーとクライアントなど)を示します。(PL/SQLを実行する各データベースまたはクライアントには、このパッケージのコピーがあります。) |
|
|
|
無効なPL/SQLモジュールを再コンパイルします。 |
ノート:
-
PLS_INTEGER
データ・タイプとBINARY_INTEGER
データ・タイプは同じです。このドキュメントでは、リファレンス情報でデータ・タイプ(表タイプ、レコード・タイプ、サブプログラム・パラメータ、サブプログラム戻り値など)を示す場合にBINARY_INTEGER
を使用しますが、説明および例ではいずれも使用される場合があります。 -
INTEGER
データ・タイプとNUMBER(38)
データ・タイプも同じです。このドキュメントでは、全体をとおしてINTEGER
を使用します。