CREATE PACKAGE BODY ステートメント (PL/SQL)

CREATE PACKAGE BODY ステートメントで、パッケージ本体を作成します。パッケージ本体には、パッケージ仕様部内で宣言されたすべてのプロシージャーおよび関数がインプリメントされたものに加え、プライベートのタイプ、変数、およびカーソルの宣言が入ります。

構文

構文図を読む構文図をスキップするCREATEOR REPLACE PACKAGE BODYpackage-nameISASprivate-declarationprocedure-specificationfunction-specificationBEGINinitialization-statementEND
procedure-specification
構文図を読む構文図をスキップするPROCEDUREprocedure-name(,parameter)ISASprocedure-declarationBEGINstatementEXCEPTIONWHENconditionORTHENhandler-statementEND
function-specification
構文図を読む構文図をスキップするFUNCTIONfunction-name(,parameter)RETURNreturn-typeISASfunction-declarationBEGINstatementEXCEPTIONWHENconditionORTHENhandler-statementEND

説明

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 関数を呼び出すことによって行えます。