DB2 Version 9.7 for Linux, UNIX, and Windows

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

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

構文

構文図を読む構文図をスキップする
>>-CREATE--+------------+--PACKAGE BODY--package-name--+-IS-+--->
           '-OR REPLACE-'                              '-AS-'   

   .-------------------------.   
   V                         |   
>----+---------------------+-+---------------------------------->
     '-private-declaration-'     

   .---------------------------------.   
   V                                 |   
>----+-----------------------------+-+-------------------------->
     '-| procedure-specification |-'     

   .--------------------------------.   
   V                                |   
>----+----------------------------+-+--------------------------->
     '-| function-specification |-'     

>--+-------------------------------------+--END----------------><
   |        .--------------------------. |        
   |        V                          | |        
   '-BEGIN----initialization-statement-+-'        

procedure-specification

|--PROCEDURE--procedure-name--+---------------------+--+-IS-+--->
                              |    .-,---------.    |  '-AS-'   
                              |    V           |    |           
                              '-(----parameter-+--)-'           

>--+-----------------------+--BEGIN--statement------------------>
   '-procedure-declaration-'                     

>--+---------------------------------------------------------------------+-->
   |                  .-------------------.        .-------------------. |   
   |                  V                   |        V                   | |   
   '-EXCEPTION--WHEN----condition--+----+-+--THEN----handler-statement-+-'   
                                   '-OR-'                                    

>--END----------------------------------------------------------|

function-specification

|--FUNCTION--function-name--+---------------------+------------->
                            |    .-,---------.    |   
                            |    V           |    |   
                            '-(----parameter-+--)-'   

>--RETURN--return-type--+-IS-+--+----------------------+-------->
                        '-AS-'  '-function-declaration-'   

>--BEGIN--statement--------------------------------------------->

>--+---------------------------------------------------------------------+-->
   |                  .-------------------.        .-------------------. |   
   |                  V                   |        V                   | |   
   '-EXCEPTION--WHEN----condition--+----+-+--THEN----handler-statement-+-'   
                                   '-OR-'                                    

>--END----------------------------------------------------------|

説明

package-name
作成する本体のパッケージの名前を指定します。 同じ名前のパッケージ仕様部が存在しなければなりません。
private-declaration
パッケージ内のいずれのプロシージャーまたは関数からもアクセス可能なプライベート変数の名前を指定します。 プライベート変数は 0 個以上含めることができます。 private-declaration には、以下に示す項目を含めることができます。
  • 変数宣言
  • レコード宣言
  • コレクション宣言
  • REF CURSOR およびカーソル変数宣言
  • レコード、コレクション、または REF CURSOR タイプの変数の TYPE 定義
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 関数を呼び出すことによって行えます。