CREATE PACKAGE BODY ステートメント (PL/SQL)
CREATE PACKAGE BODY ステートメントで、パッケージ本体を作成します。パッケージ本体には、パッケージ仕様部内で宣言されたすべてのプロシージャーおよび関数がインプリメントされたものに加え、プライベートのタイプ、変数、およびカーソルの宣言が入ります。
構文
説明
- package-name
- 作成する本体のパッケージの名前を指定します。 同じ名前のパッケージ仕様部が存在しなければなりません。
- private-declaration
- パッケージ内のいずれのプロシージャーまたは関数からもアクセス可能なプライベート・オブジェクトの名前を指定します。 プライベート変数は 0 個以上含めることができます。 private-declaration には、以下に示す項目を含めることができます。
- 変数宣言
- レコード宣言
- コレクション宣言
- REF CURSOR およびカーソル変数宣言
- レコード、コレクション、または REF CURSOR タイプの変数の TYPE 定義
- 基本タイプに基づく SUBTYPE 定義
- procedure-name
- パッケージ仕様部およびそのシグニチャーで宣言されたパブリック・プロシージャーの名前を指定します。 シグニチャーでは、仮パラメーターの名前、データ・タイプ、パラメーター・モード、仮パラメーターの順序、または仮パラメーターの数を指定できます。 プロシージャー名およびパッケージ仕様部が、
該当するパブリック・プロシージャーの宣言のシグニチャーと完全に一致する場合は、procedure-name によって、
このパブリック・プロシージャーの本体が定義されます。
これらの条件のいずれも該当しない場合、procedure-name によって新規プライベート・プロシージャーが定義されます。
- parameter
- プロシージャーの仮パラメーターを指定します。
- procedure-declaration
- プロシージャー procedure-name 内からのみアクセス可能な宣言を指定します。 これは PL/SQL ステートメントです。
- statement
- PL/SQL プログラム・ステートメントを指定します。
- function-name
- パッケージ仕様部およびそのシグニチャーで宣言されたパブリック関数の名前を指定します。 シグニチャーでは、仮パラメーターの名前、データ・タイプ、パラメーター・モード、仮パラメーターの順序、または仮パラメーターの数を指定できます。 関数名およびパッケージ仕様部が、
該当するパブリック関数の宣言のシグニチャーと完全に一致する場合は、function-name によって、
このパブリック関数の本体が定義されます。
これらの条件のいずれも該当しない場合、function-name によって新規プライベート関数が定義されます。
- parameter
- 関数の仮パラメーターを指定します。
- return-type
- 関数によって返される値のデータ・タイプを指定します。
- function-declaration
- 関数 function-name 内からのみアクセス可能な宣言を指定します。 これは PL/SQL ステートメントです。
- statement
- PL/SQL プログラム・ステートメントを指定します。
- initialization-statement
- パッケージ本体の初期設定セクション内のステートメントを指定します。 初期設定セクションを指定する場合、そこには少なくとも 1 つのステートメントを含める必要があります。 初期設定セクション内のステートメントは、パッケージが最初に参照されるとき、各ユーザー・セッションにつき 1 回実行されます。
注
CREATE PACKAGE BODY ステートメントを難読化形式でサブミットできます。 難読化されたステートメントでは、パッケージ名のみを判読できます。 ステートメントの他の部分は判読できないようにエンコードされますが、データベース・サーバーはその部分をデコードできます。 難読化ステートメントの作成は、DBMS_DDL.WRAP 関数を呼び出すことによって行えます。
