TimesTenのPL/SQLを有効にすると、一連のPL/SQLパッケージがインストールされます。これらのパッケージによって、データベース機能が拡張され、SQL機能へのPL/SQLアクセスが可能になります。現在TimesTenにインストールされているパッケージ一覧を表示するには、SYS
が所有するオブジェクトについて、システム・ビューのALL_PROCEDURES
を使用します。この例は次に示します(出力では内部パッケージは省略しています)。他の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が提供するPL/SQLパッケージの概要」で簡単に説明しています)。PL/SQL言語自体の一部であるパッケージまたはOracle Database内部でのみ使用されるパッケージは示しておらず、このマニュアルでは説明していません。
この章の残りでは、次の項目について説明します。
PL/SQLおよびPL/SQLパッケージの詳細は、次を参照してください。
『Oracle TimesTen In-Memory Database PL/SQL開発者ガイド』
『Oracle Database PL/SQL言語リファレンス』
『Oracle Database 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が提供するパッケージは、データベースが作成されるときに自動的にインストールされます。
すべてのユーザーには、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
このマニュアルのパッケージの例の出力を確認するには、ttIsql
で最初に次のコマンドを実行します。
Command> set serveroutput on
表1-1は、一般利用のためにTimesTenで提供されるPL/SQLパッケージを示しています。これらのパッケージは、パッケージ所有者ではなく起動ユーザーとして実行されます。
注意:
|
表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モジュールを再コンパイルします。 |
注意:
|