Db2 10.5 for Linux, UNIX, and Windows

BIND コマンド

バインド・ユーティリティーを呼び出し、 プリコンパイラーによって生成されたバインド・ファイルに保管された SQL ステートメントを作成します。 また、データベースに保管されるパッケージを作成します。

有効範囲

このコマンドは、db2nodes.cfg 中のどのデータベース・パーティションからでも発行できます。 実行すると、カタログ・データベース・パーティションのデータベース・カタログが更新されます。 その影響はすべてのデータベース・パーティションから見えます。

許可

以下のいずれかの権限が必要です。
  • DBADM 権限
  • EXPLAIN ONLY が指定されている場合、EXPLAIN 権限または暗黙的に EXPLAIN を含む権限があれば問題ありません。
  • パッケージが存在しない場合は、BINDADD 権限および以下のものが必要です。
    • パッケージのスキーマ名が存在しない場合は、データベースに対する IMPLICIT_SCHEMA 権限。
    • パッケージのスキーマ名が存在する場合は、スキーマに対する CREATEIN 特権。
  • パッケージが存在する場合は、以下のいずれかの特権です。
    • スキーマに対する ALTERIN 特権
    • パッケージに対する BIND 特権
さらに、EXPLAIN または EXPLSNAP 節を使用して Explain 情報をキャプチャーする場合は、以下のいずれかの権限が必要です。
  • Explain 表に対する INSERT 特権
  • DATAACCESS 権限

アプリケーション内の静的 SQL ステートメントをコンパイルするために必要な特権もすべて必要です。 グループに認可された特権が、 静的ステートメントの許可の検査に使用されることはありません。

必要な接続

データベース。 暗黙接続が可能な場合には、デフォルト・データベースへの接続が確立されます。

コマンド構文

DB2® for Linux, Windows and UNIX の場合
構文図を読む構文図をスキップする
>>-BIND--filename----------------------------------------------->

>--+-----------------------------------------------------------------------+-->
   '-ACTION--+-ADD-------------------------------------------------------+-'   
             | .-REPLACE-.                                               |     
             '-+---------+--+-----------------+--+---------------------+-'     
                            '-RETAIN--+-NO--+-'  '-REPLVER--version-id-'       
                                      '-YES-'                                  

>--+------------------+--+-----------------------+-------------->
   '-APREUSE--+-NO--+-'  '-BLOCKING--+-UNAMBIG-+-'   
              '-YES-'                +-ALL-----+     
                                     '-NO------'     

>--+---------------------------+--+----------------------+------>
   '-BUSTIMESENSITIVE--+-YES-+-'  '-CLIPKG--cli-packages-'   
                       '-NO--'                               

>--+-------------------------+---------------------------------->
   '-COLLECTION--schema-name-'   

>--+---------------------------------------------------------+-->
   '-CONCURRENTACCESSRESOLUTION--+-USECURRENTLYCOMMITTED---+-'   
                                 +-WAITFOROUTCOME----------+     
                                 +-USE CURRENTLY COMMITTED-+     
                                 '-WAIT FOR OUTCOME--------'     

>--+-------------------+---------------------------------------->
   '-DATETIME--+-DEF-+-'   
               +-EUR-+     
               +-ISO-+     
               +-JIS-+     
               +-LOC-+     
               '-USA-'     

>--+-----------------------------------+------------------------>
   '-DEGREE--+-1---------------------+-'   
             +-degree-of-parallelism-+     
             '-ANY-------------------'     

>--+------------------------------+--+--------------------+----->
   '-DYNAMICRULES--+-RUN--------+-'  '-EXPLAIN--+-NO----+-'   
                   +-BIND-------+               +-ALL---+     
                   +-INVOKERUN--+               +-REOPT-+     
                   +-INVOKEBIND-+               +-ONLY--+     
                   +-DEFINERUN--+               '-YES---'     
                   '-DEFINEBIND-'                             

>--+---------------------+--+----------------------------+------>
   '-EXPLSNAP--+-NO----+-'  |                    .-NO--. |   
               +-ALL---+    '-EXTENDEDINDICATOR--+-YES-+-'   
               +-REOPT-+                                     
               '-YES---'                                     

>--+--------------------+--------------------------------------->
   '-FEDERATED--+-NO--+-'   
                '-YES-'     

>--+------------------------------------------------------+----->
   '-FEDERATED_ASYNCHRONY--+-ANY------------------------+-'   
                           '-number_of_atqs_in_the_plan-'     

>--+---------------------------+--+-------------------+--------->
   |           .-,-----------. |  '-GENERIC--"string"-'   
   |           V             | |                          
   '-FUNCPATH----schema-name-+-'                          

>--+-------------------------+--+-----------------+------------->
   +-GRANT--+-authid-+-------+  |         .-DEF-. |   
   |        '-PUBLIC-'       |  '-INSERT--+-BUF-+-'   
   +-GRANT_GROUP--group-name-+                        
   +-GRANT_USER--user-name---+                        
   '-GRANT_ROLE--role-name---'                        

>--+-------------------+--+----------------------+-------------->
   '-ISOLATION--+-CS-+-'  '-KEEPDYNAMIC--+-YES-+-'   
                +-RR-+                   '-NO -'     
                +-RS-+                               
                '-UR-'                               

>--+------------------------+----------------------------------->
   '-MESSAGES--message-file-'   

>--+---------------------------------------+-------------------->
   '-OPTPROFILE--optimization-profile-name-'   

>--+-------------------------+--+---------------------------+--->
   '-OWNER--authorization-id-'  '-QUALIFIER--qualifier-name-'   

                                     .-REOPT NONE---.   
>--+------------------------------+--+--------------+----------->
   '-QUERYOPT--optimization-level-'  +-REOPT ONCE---+   
                                     '-REOPT ALWAYS-'   

>--+-------------------------+--+------------------+------------>
   '-SQLERROR--+-CHECK-----+-'  '-SQLWARN--+-NO--+-'   
               +-CONTINUE--+               '-YES-'     
               '-NOPACKAGE-'                           

>--+---------------------------------+-------------------------->
   '-STATICREADONLY--+-NO----------+-'   
                     +-YES---------+     
                     '-INSENSITIVE-'     

>--+-------------------------------+---------------------------->
   '-STRING_UNITS--+-SYSTEM------+-'   
                   '-CODEUNITS32-'     

>--+---------------------------+-------------------------------->
   '-SYSTIMESENSITIVE--+-YES-+-'   
                       '-NO--'     

>--+----------------------------+--+--------------------+------><
   '-TRANSFORM GROUP--groupname-'  '-VALIDATE--+-BIND-+-'   
                                               '-RUN--'     

Linux、Windows、UNIX 以外のサーバー上の Db2 の場合
構文図を読む構文図をスキップする
>>-BIND--filename----------------------------------------------->

>--+-----------------------------------------------------------------------+-->
   '-ACTION--+-ADD-------------------------------------------------------+-'   
             | .-REPLACE-.                                               |     
             '-+---------+--+-----------------+--+---------------------+-'     
                            '-RETAIN--+-NO--+-'  '-REPLVER--version-id-'       
                                      '-YES-'                                  

>--+-----------------------+--+----------------------+---------->
   |           .-UNAMBIG-. |  '-CCSIDG--double-ccsid-'   
   '-BLOCKING--+-ALL-----+-'                             
               '-NO------'                               

>--+---------------------+--+--------------------+-------------->
   '-CCSIDM--mixed-ccsid-'  '-CCSIDS--sbcs-ccsid-'   

>--+----------------------+--+----------------------+----------->
   '-CHARSUB--+-DEFAULT-+-'  '-CLIPKG--cli-packages-'   
              +-BIT-----+                               
              +-MIXED---+                               
              '-SBCS----'                               

>--+-------------------+--+-------------------------+----------->
   '-CNULREQD--+-NO--+-'  '-COLLECTION--schema-name-'   
               '-YES-'                                  

>--+---------------------------------------------------------+-->
   '-CONCURRENTACCESSRESOLUTION--+-USECURRENTLYCOMMITTED---+-'   
                                 +-WAITFOROUTCOME----------+     
                                 +-USE CURRENTLY COMMITTED-+     
                                 '-WAIT FOR OUTCOME--------'     

>--+-------------------------+--+-------------------------+----->
   |  (1)                    |  '-DBPROTOCOL--+-DRDA----+-'   
   '-------DATETIME--+-DEF-+-'                '-PRIVATE-'     
                     +-EUR-+                                  
                     +-ISO-+                                  
                     +-JIS-+                                  
                     +-LOC-+                                  
                     '-USA-'                                  

>--+-------------+--+--------------------+---------------------->
   '-DEC--+-15-+-'  '-DECDEL--+-COMMA--+-'   
          '-31-'              '-PERIOD-'     

>--+-----------------------------------------+------------------>
   |  (2)                                    |   
   '-------DEGREE--+-1---------------------+-'   
                   +-degree-of-parallelism-+     
                   '-ANY-------------------'     

>--+------------------------------+----------------------------->
   |               .-RUN--------. |   
   '-DYNAMICRULES--+-BIND-------+-'   
                   +-INVOKERUN--+     
                   +-INVOKEBIND-+     
                   +-DEFINERUN--+     
                   '-DEFINEBIND-'     

>--+-----------------------+--+------------------------+-------->
   '-ENCODING--+-ASCII---+-'  |  (3)                   |   
               +-EBCDIC--+    '-------EXPLAIN--+-NO--+-'   
               +-UNICODE-+                     '-YES-'     
               '-CCSID---'                                 

>--+----------------------------+--+-------------------+-------->
   |                    .-NO--. |  '-GENERIC--"string"-'   
   '-EXTENDEDINDICATOR--+-YES-+-'                          

>--+-------------------+--+---------------------+--------------->
   '-GRANT--+-authid-+-'  '-IMMEDWRITE--+-NO--+-'   
            '-PUBLIC-'                  +-YES-+     
                                        '-PH1-'     

>--+-----------------+--+-------------------+------------------->
   '-INSERT--+-BUF-+-'  |            .-CS-. |   
             '-DEF-'    '-ISOLATION--+-NC-+-'   
                                     +-RR-+     
                                     +-RS-+     
                                     '-UR-'     

>--+----------------------+--+------------------------+--------->
   '-KEEPDYNAMIC--+-YES-+-'  '-MESSAGES--message-file-'   
                  '-NO -'                                 

>--+----------------------+--+-------------------------+-------->
   '-OPTHINT----hint-id---'  '-OS400NAMING--+-SYSTEM-+-'   
                                            '-SQL----'     

>--+-------------------------+--+-------------------+----------->
   '-OWNER--authorization-id-'  '-PATH--schema-name-'   

>--+---------------------------+--+-------------------------+--->
   '-QUALIFIER--qualifier-name-'  '-RELEASE--+-COMMIT-----+-'   
                                             '-DEALLOCATE-'     

   .-REOPT NONE---.                     
>--+--------------+--+--------------+--------------------------->
   +-REOPT ONCE---+  +-REOPT VARS---+   
   '-REOPT ALWAYS-'  '-NOREOPT VARS-'   

>--+---------------------+--+-------------------------+--------->
   '-SORTSEQ--+-JOBRUN-+-'  '-SQLERROR--+-CHECK-----+-'   
              '-HEX----'                +-CONTINUE--+     
                                        '-NOPACKAGE-'     

>--+--------------------+--+------------------------+----------->
   '-VALIDATE--+-BIND-+-'  '-STRDEL--+-APOSTROPHE-+-'   
               '-RUN--'              '-QUOTE------'     

>--+-------------+---------------------------------------------><
   '-TEXT--label-'   

注:
  1. サーバーが DATETIME DEF オプションをサポートしない場合、 それは DATETIME ISO にマップされます。
  2. DEGREE オプションは DRDA レベル 2 のアプリケーション・サーバーでしかサポートされていません。
  3. DRDA は、EXPLAIN オプションが値 YES または NO を持つように定義します。 サーバーが EXPLAIN YES オプションをサポートしない場合、 この値は EXPLAIN ALL にマップされます。

コマンド・パラメーター

filename
アプリケーション・プログラムをプリコンパイルしたときに生成されたバインド・ファイル、 または複数のバインド・ファイル名を含むリスト・ファイルの名前を指定します。 バインド・ファイルの拡張子は .bnd です。また、絶対パス名も指定できます。
リスト・ファイルを指定した場合、その名前の先頭文字は @ 文字でなければなりません。 リスト・ファイルには、数行のバインド・ファイル名を含めることができます。 同一行にリストするバインド・ファイルはプラス (+) 文字で区切る必要がありますが、 各行の先頭ファイルの前や最後のファイルの後に + を挿入することはできません。 以下に例を示します。
   /u/smith/sqllib/bnd/@all.lst
これは、次のバインド・ファイルを含むリスト・ファイルです。
   mybind1.bnd+mybind.bnd2+mybind3.bnd+
         mybind4.bnd+mybind5.bnd+
         mybind6.bnd+
         mybind7.bnd
ACTION
パッケージを追加または置換できるかどうかを示します。
ADD
名前付きパッケージが存在せず、新規パッケージを作成するということを指示します。 既にパッケージがある場合は、実行停止状態となり、診断エラー・メッセージが戻されます。
REPLACE
既存のパッケージを、パッケージ名および作成者が同じ新規パッケージと置き換えることを指示します。 これは ACTION オプションのデフォルト値です。
RETAIN
パッケージを置き換えたときに BIND および EXECUTE 権限が保持されるかどうかを指示します。 パッケージの所有権を変更した場合、 新規所有者は前のパッケージ所有者に BIND 権限と EXECUTE 権限を付与します。
NO
パッケージを置き換えたとき、 BIND および EXECUTE 権限を保持しません。 この値は Db2 ではサポートされていません。
YES
パッケージを置き換えたとき、BIND および EXECUTE 権限を保持します。これはデフォルト値です。
REPLVER version-id
特定のバージョンのパッケージを置き換えます。 バージョン ID は、どのバージョンのパッケージを置き換えるのかを指定するものです。 指定されたバージョンが存在しない場合には、エラーが戻されます。 REPLACEREPLVER オプションが指定されておらず、バインドされるパッケージのパッケージ名、作成者、およびバージョンと一致するパッケージが既に存在する場合、そのパッケージは置換されます。 存在しなければ、新規のパッケージが追加されます。
APREUSE
静的 SQL アクセス・プランが再使用されるかどうかを指定します。 このオプションが有効である場合、照会コンパイラーは、バインド時および将来の暗黙および明示の再バインド時に、既存のパッケージ内のステートメントにアクセス・プランを再使用しようとします。
YES
照会コンパイラーは、パッケージ内のステートメントにアクセス・プランを再使用しようとします。 既存のパッケージがある場合、照会コンパイラーは、新規バインド・ファイル内のステートメントと合致できるすべてのステートメントに対して、アクセス・プランを再使用しようとします。 ステートメントが合致するには、ステートメント・テキストは同一でなければならず、既存のパッケージ内のステートメントのセクション番号は、新規パッケージ内のステートメントに対するセクション番号の内容と一致しなければなりません。
NO
照会コンパイラーは、パッケージ内のステートメントにアクセス・プランを再使用しようとしません。 これはデフォルト設定です。
BLOCKING
カーソルの行ブロッキングのタイプを指定します。 パーティション・データベース環境では、LOB 列データ・タイプ参照を含んだ行データのブロッキングもサポートされます。
ALL
FOR READ ONLY 節で指定されているカーソルまたは FOR UPDATE として指定されていないカーソルの場合、ブロック化が発生します。

未確定カーソルは、読み取り専用として扱われます。

NO
どのカーソルについてもブロック化は発生しません。

読み取り専用カーソルおよび未確定カーソルの定義については、DECLARE CURSOR ステートメントを参照してください。

あいまいなカーソルは、更新可能として扱われます。

UNAMBIG
FOR READ ONLY 節で指定されているカーソルの場合、ブロック化が発生します。

FOR READ ONLY または FOR UPDATE 節で宣言されていない、未確定でない読み取り専用のカーソルはブロック化されます。 未確定カーソルはブロック化されません。

あいまいなカーソルは、更新可能として扱われます。

BUSTIMESENSITIVE
静的および動的 SQL ステートメントでのアプリケーション期間のテンポラル表への参照が、CURRENT TEMPORAL BUSINESS_TIME 特殊レジスターの値の影響を受けるかどうかを示します。
YES
アプリケーション期間のテンポラル表への参照は、CURRENT TEMPORAL BUSINESS_TIME 特殊レジスターの値の影響を受けます。 この値はデフォルト値です。
NO
アプリケーション期間のテンポラル表への参照は、CURRENT TEMPORAL BUSINESS_TIME 特殊レジスターの値の影響を受けません。
CCSIDG double-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字カラム定義で、 2 バイト文字用のコード化文字セット ID (CCSID) (特定の CCSID 節は使用しない) を指定する整数。 このオプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
CCSIDM mixed-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字カラム定義で、 混合バイト文字用のコード化文字セット ID (CCSID) (特定の CCSID 節は使用しない) を指定する整数。 このオプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
CCSIDS sbcs-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字カラム定義で、 1 バイト文字用のコード化文字セット ID (CCSID) (特定の CCSID 節は使用しない) を指定する整数。 なお、Db2 for Linux, UNIX, and Windows はこのオプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
CHARSUB
CREATE および ALTER TABLE SQL ステートメントの列定義に使用する、 デフォルトの文字サブタイプを指定します。 このプリコンパイル/バインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。
BIT
明示的にサブタイプを指定しなかった場合、 すべての新規文字カラムに FOR BIT DATA SQL 文字サブタイプが使用されます。
DEFAULT
明示的にサブタイプを指定しなかった場合、 すべての新規文字カラムにターゲットの組み込みデフォルト・サブタイプが使用されます。
MIXED
明示的にサブタイプを指定しなかった場合、 すべての新規文字カラムに FOR MIXED DATA SQL 文字サブタイプが使用されます。
SBCS
明示的にサブタイプを指定しなかった場合、 すべての新規文字カラムに FOR SBCS DATA SQL 文字サブタイプが使用されます。
CLIPKG cli-packages
3 から 30 の整数で、 CLI バインド・ファイルをデータベースに対してバインドするときに作成される、CLI ラージ・パッケージの数を指定します。
CNULREQD
このオプションは、LANGLEVEL プリコンパイル・オプションと関連します。これは、C または C++ アプリケーションで作成されたバインド・ファイルの場合のみ有効です。 このバインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。
NO
C ストリング・ホスト変数中の NULL 終止符に関して、LANGLEVEL SAA1 プリコンパイル・オプションに基づいてアプリケーションがコード化された場合です。
YES
C ストリング・ホスト変数中の NULL 終止符に関して、LANGLEVEL MIA プリコンパイル・オプションに基づいてアプリケーションがコード化された場合です。
COLLECTION schema-name
パッケージ用の 128 バイトの収集 ID を指定します。 これを指定しなかった場合、パッケージを処理する際には、 ユーザーの許可 ID が使用されます。
CONCURRENTACCESSRESOLUTION
パッケージ内のステートメントに使用する並行アクセス解決を指定します。
USE CURRENTLY COMMITTED
データベース・マネージャーが更新または削除の処理中である場合に、該当するスキャンに現在コミット済みバージョンのデータを使用できることを指定します。 挿入処理中の行はスキップできます。 この節は、有効な分離レベルがカーソル固定または読み取り固定である場合に適用され (読み取り固定の場合、それはコミットされていない挿入だけをスキップします)、そうでない場合は無視されます。 該当するスキャンには、非読み取り専用ステートメントに加え、読み取り専用ステートメントの一部にできる読み取り専用スキャンが含まれます。レジストリー変数 Db2_EVALUNCOMMITTEDDb2_SKIPDELETED、および Db2_SKIPINSERTED の設定は、Currently Committed を使用するスキャンには適用されません。ただし、これらのレジストリー変数の設定は、Currently Committed を使用しないスキャンには、今までどおり適用されます。
WAIT FOR OUTCOME
カーソル固定およびさらに上位のスキャンで、更新処理中または削除処理中のデータが検出されたときにはコミットまたはロールバックを待機するように指定します。 挿入処理中の行はスキップされません。レジストリー変数 Db2_EVALUNCOMMITTEDDb2_SKIPDELETED、および Db2_SKIPINSERTED の設定は、適用されなくなりました。
DATETIME
使用する日時形式を指定します。
DEF
データベースのテリトリー・コードと対応する日時形式を使用します。
EUR
IBM 欧州規格の日時形式を使用します。
ISO
国際標準化機構規格の日時形式を使用します。
JIS
日本工業規格の日時形式を使用します。
LOC
データベースのテリトリー・コードと対応する地域別日時形式を使用します。
USA
IBM 米国規格の日時形式を使用します。
DBPROTOCOL
3 部構成の名前のステートメントによって識別されるリモート・サイトに接続するときに 使用するプロトコルを指定します。 サポートしているのは Db2 for OS/390® だけです。サポートされているオプション値のリストについては、Db2 for OS/390 の資料を参照してください。
DEC
10 進算術演算に使用する最大精度を指定します。 このプリコンパイル/バインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
15
10 進算術演算に 15 桁精度が使用されます。
31
10 進算術演算に 31 桁精度が使用されます。
DECDEL
10 進数および浮動小数点リテラル中で小数点標識としてピリオド (.) またはコンマ (,) のどちらかを指定します。 このプリコンパイル/バインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
COMMA
小数点標識としてコンマ (,) を使用します。
PERIOD
小数点標識としてピリオド (.) を使用します。
DEGREE
SMP システムで静的 SQL ステートメントを実行するための並列処理の度合いを指定します。 このオプションは、CREATE INDEX 並列処理には影響を与えません。
1
ステートメントの実行に並列処理を使用しません。
degree-of-parallelism
ステートメントを実行する際の並列処理の度合いを指定します。値の範囲は 2 から 32 767 です。
ANY
ステートメントの実行時にデータベース・マネージャーで判別した程度で並列処理を行うよう指定します。
DYNAMICRULES
許可 ID に使用される値の初期設定、および非修飾オブジェクト参照の暗黙的な修飾の、 実行時の動的 SQL に適用される規則を定義します。
RUN
パッケージを実行するユーザーの許可 ID が動的 SQL ステートメントの許可検査に使用されるように指定します。 許可 ID は、動的 SQL ステートメント内の非修飾オブジェクト参照を暗黙的に修飾するためのデフォルトのパッケージ修飾子としても使用されます。 これはデフォルト値です。
BIND
許可および修飾の静的 SQL に適用されるすべての規則が、 実行時に使用されるように指定します。 つまり、パッケージ所有者の許可 ID が動的 SQL の許可検査に使用され、 デフォルトのパッケージ修飾子が動的 SQL ステートメント内の非修飾オブジェクト参照の暗黙的な修飾に使用されます。
DEFINERUN
パッケージがルーチン・コンテキスト内で使用される場合、 ルーチン定義者の許可 ID が許可検査およびルーチン内の 動的 SQL ステートメント内の非修飾オブジェクト参照の暗黙的な修飾に使用されます。

パッケージがスタンドアロン・アプリケーションとして使用される場合、動的 SQL ステートメントはパッケージが DYNAMICRULES RUN を指定してバインドされたかのように処理されます。

DEFINEBIND
パッケージがルーチン・コンテキスト内で使用される場合、 ルーチン定義者の許可 ID が許可検査およびルーチン内の 動的 SQL ステートメント内の非修飾オブジェクト参照の暗黙的な修飾に使用されます。

パッケージがスタンドアロン・アプリケーションとして使用される場合、動的 SQL ステートメントはパッケージが DYNAMICRULES BIND を指定してバインドされたかのように処理されます。

INVOKERUN
パッケージがルーチン・コンテキスト内で使用される場合、 ルーチン起動時に有効だった現行のステートメント許可 ID が、 動的 SQL ステートメントの許可検査およびそのルーチン内の 動的 SQL ステートメント内の非修飾オブジェクト参照の暗黙的な修飾に使用されます。

パッケージがスタンドアロン・アプリケーションとして使用される場合、動的 SQL ステートメントはパッケージが DYNAMICRULES RUN を指定してバインドされたかのように処理されます。

INVOKEBIND
パッケージがルーチン・コンテキスト内で使用される場合、 ルーチン起動時に有効だった現行のステートメント許可 ID が、 動的 SQL ステートメントの許可検査およびそのルーチン内の 動的 SQL ステートメント内の非修飾オブジェクト参照の暗黙的な修飾に使用されます。

パッケージがスタンドアロン・アプリケーションとして使用される場合、動的 SQL ステートメントはパッケージが DYNAMICRULES BIND を指定してバインドされたかのように処理されます。

動的 SQL ステートメントは、 バインド動作を公開しているパッケージ内のパッケージ所有者の許可 ID を使用します。 したがって、パッケージのユーザーが受け取るべきでない権限を、 パッケージのバインド・プログラムに付与してはなりません。 同様に、定義動作を公開するルーチンを定義するとき、 パッケージのユーザーが受け取るべきでない権限を、ルーチンの定義者に付与してはなりません。 動的ステートメントがルーチンの定義者の許可 ID を使用するためです。

次の動的な準備済み SQL ステートメントは、DYNAMICRULES RUN にバインドされなかったパッケージ内では使用できません。GRANT、REVOKE、ALTER、CREATE、DROP、COMMENT ON、RENAME、SET INTEGRITY、および SET EVENT MONITOR STATE です。

ENCODING
プランまたはパッケージ内の静的ステートメント内にあるすべてのホスト変数のエンコード方式を指定します。 サポートしているのは Db2 for OS/390 だけです。サポートされているオプション値のリストについては、Db2 for OS/390 の資料を参照してください。
EXPLAIN
各 SQL ステートメント用に選択したアクセス・プランに関する Explain 表の情報を、 パッケージに保管します。
NO
Explain 情報はキャプチャーされません。
YES
Explain 表には、静的ステートメントの場合は prep/bind 時に、追加バインド・ステートメントの場合は実行時に、選択されたアクセス・プランについての情報が取り込まれます。

パッケージがルーチンに使用されるもので、 パッケージに追加バインド・ステートメントが含まれる場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 これが行われない場合、パッケージ内の追加バインド・ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

REOPT
再最適化可能な追加バインド SQL ステートメントの Explain 情報が、実行時に各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN MODE レジスターが NO に設定されていても、 Explain 情報は実行時に再最適化可能な動的 SQL ステートメント用に集められます。

パッケージがルーチンに使用される場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 そうしなければ、パッケージ内の追加バインドおよび動的ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

ONLY
ONLY オプションにより、実行する特権がなくてもステートメントの EXPLAIN ができます。Explain 表にはデータが入りますが、永続的パッケージは作成されません。 バインド処理中に、名前とバージョンが同じ既存パッケージを検出した場合、その既存パッケージはドロップも置換 (ACTION REPLACE を指定した場合) もされません。Explain 表の移植中にエラーが発生した場合、Explain 情報は、エラーを戻したステートメント、およびそれに続くどのステートメントに対しても追加されません。
ALL
適格な静的 SQL ステートメントの Explain 情報が、 prep/bind 時に各 Explain 表に入れられます。 適格な追加バインド SQL ステートメントの Explain 情報が、実行時に各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN MODE レジスターが NO に設定されている場合でも、適格な動的 SQL ステートメントの Explain 情報が実行時に収集されます。

パッケージがルーチンに使用される場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 そうしなければ、パッケージ内の追加バインドおよび動的ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

EXPLSNAP
Explain 表に Explain スナップショットを保管します。
NO
Explain スナップショットはキャプチャーされません。
YES
Explain 表には、静的ステートメントの場合は prep/bind 時に、追加バインド・ステートメントの場合は実行時に、適格な各静的 SQL ステートメントの Explain スナップショットが入れられます。

パッケージがルーチンに使用されるもので、 パッケージに追加バインド・ステートメントが含まれる場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 これが行われない場合、パッケージ内の追加バインド・ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

REOPT
再最適化可能な追加バインド SQL ステートメントの Explain スナップショット情報が、実行時に各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN SNAPSHOT レジスターが NO に設定されていても、 Explain スナップショット情報は実行時に再最適化可能な動的 SQL ステートメント用に集められます。

パッケージがルーチンに使用される場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 そうしなければ、パッケージ内の追加バインドおよび動的ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

ALL
適格な各静的 SQL ステートメントの Explain スナップショットが、 prep/bind 時に Explain 表内に入れられます。 適格な追加バインド SQL ステートメントの Explain スナップショット情報が、実行時に各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN SNAPSHOT レジスターが NO に設定されていても、 Explain スナップショット情報は実行時に適格な動的 SQL ステートメント用に集められます。

パッケージがルーチンに使用される場合、 そのルーチンは MODIFIES SQL DATA として定義されなければなりません。 そうしなければ、パッケージ内の追加バインドおよび動的ステートメントは ランタイム・エラーを生じます (SQLSTATE 42985)。

EXTENDEDINDICATOR
関連のあるプランまたはパッケージの実行時に、拡張された標識変数値を認識できるようにします。
NO
拡張された標識変数値が認識されない。標識変数は、通常標識変数です。負の標識変数値は NULL であることを暗黙に示し、正またはゼロの値は NULL 以外であることを暗黙に示します。これがデフォルトの条件です。
YES
拡張された標識変数値が認識される。認識されない標識変数値を使用するか、サポートされない場所でデフォルトまたは未割り当ての標識変数ベースの値を使用すると、バインドされたステートメントの実行時に、 Db2 データベース・マネージャーはエラー・メッセージを生成します。
FEDERATED
パッケージ内の静的 SQL ステートメントがニックネームまたはフェデレーテッド・ビューを 参照するかどうかを指定します。 このオプションが指定されず、パッケージ内の 静的 SQL ステートメントがニックネームまたはフェデレーテッド・ビューを参照する場合は、 警告が返され、パッケージは作成されます。
NO
ニックネームまたはフェデレーテッド・ビューは、パッケージ内の静的 SQL ステートメントで 参照されません。ニックネームまたはフェデレーテッド・ビューがこのパッケージの準備またはバインド・フェーズ中に 静的 SQL ステートメントで見つかった場合、エラーが返され、パッケージは作成 されません
YES
ニックネームまたはフェデレーテッド・ビューは、パッケージ内の静的 SQL ステートメントで 参照が可能です。ニックネームまたはフェデレーテッド・ビューがこのパッケージの準備またはバインド中に 静的 SQL ステートメントで見つからなかった場合、エラーまたは警告は返されず、パッケージは 作成されます。
FEDERATED_ASYNCHRONY
フェデレーテッド・サーバーが組み込み SQL を使用するプログラムのアクセス・プランでサポートする非同期表キュー (ATQ) の最大数を指定します。
ANY
オプティマイザーはアクセス・プラン用の ATQ の数を判別します。 オプティマイザーは ATQ をプラン内のすべての適格な SHIP またはリモート・プッシュダウン演算子に割り当てます。 Db2_MAX_ASYNC_REQUESTS_PER_QUERY サーバー・オプションに指定される値は、非同期要求の数を制限します。
number_of_atqs_in_the_plan
プラン内の ATQ の数。数値を 0 から 32767 の範囲で指定します。
FUNCPATH
静的 SQL で、ユーザー定義の特殊タイプおよび機能を解析する際に使用する関数パスを指定します。 このオプションを指定しなかった場合、 デフォルトの関数パスは "SYSIBM"、"SYSFUN"、または USER になります。 ここで USER は USER 特殊レジスターの値です。
schema-name
SQL ID (通常または区切り)。 これは、アプリケーション・サーバーに存在するスキーマを識別します。 スキーマが存在する場合、プリコンパイル時やバインド時に妥当性検査は行われません。 同一スキーマは、関数パス内に一度しか存在できません。 スキーマ名 SYSPUBLIC は、関数パスには指定できません。 指定できるスキーマ数は、処理結果の関数パスの長さによって限定され、 2048 バイトを超えることはできません。 スキーマ SYSIBM は、明示的に指定する必要がありません。 関数パス内に含まれていなければ、最初のスキーマに暗黙的に想定されます。
GENERIC "string"
ターゲット・サーバーでサポートされているが、 BIND PACKAGE コマンドにも REBIND PACKAGE コマンドにも事前定義されていない バインド・オプションを指定してパッケージをバインドすることをサポートします。BIND コマンドまたは PRECOMPILE コマンドの構文に事前定義されているバインド・オプションを指定する場合には、GENERIC バインド・オプションは使用しないでください。 例えば、KEEPDYNAMIC などの事前定義のバインド・オプションを GENERIC バインド・オプションに指定しないでください。 GENERIC バインド・オプションの構文は次のとおりです。
   generic "option1 value1 option2 value2 ..."
各オプションと値は、1 つ以上のブランク・スペースで区切らなければなりません。 例えば、次の GENERIC バインド・オプション構文を使用すると、OPT1、OPT2、および OPT3 のオプション値を指定してパッケージをバインドすることができます。
   generic "opt1 value1 opt2 value2 opt3 value3"

ストリングの最大長は 4096 バイトです。各オプション名の最大長はストリングで 255 バイトです。

クライアントは、クライアント検証を行わずに BIND コマンドを Db2 サーバーに渡します。 Db2 サーバーは、BIND コマンドを処理し、適切なメッセージを返します。

バージョン 10.5 フィックスパック 2 以降では、Db2 for z/OS® バージョン 11 以降のサーバーに接続する場合に、 アプリケーション互換性の特殊レジスター設定 (APPLCOMPAT) を BIND コマンドの GENERIC オプションに指定できます。

Db2 for z/OS サーバーでサポートされる GENERIC オプションのリストについては、Db2 for Linux, UNIX, and Windows クライアントからの Db2 for z/OS バインド・オプションの指定を参照してください。

Db2 for i サーバーでサポートされる GENERIC オプションのリストについては、異種クライアントが NLSS ソート・シーケンス、システム命名、別の日時形式などのパッケージ・オプションをオーバーライドする方法の表 1 を参照してください。

GRANT
注: GRANTGRANT_GROUPGRANT_USER、および GRANT_ROLE のうち複数のオプションが指定された場合には、指定された最後のオプションのみが実行されます。
authid
指定したユーザー名、ロール名、またはグループ ID に EXECUTE 特権と BIND 特権を付与します。 SQL GRANT ステートメントで付与対象の authid のタイプを示す USER、GROUP、ROLE のいずれも指定されなかった場合は、GRANT ステートメントとその規則を使用してそのタイプが判別されます。 規則については、GRANT (Role) ステートメント (GRANT (Role) statement) を参照してください。
PUBLIC
PUBLIC に EXECUTE 特権と BIND 特権を付与します。
GRANT_GROUP group-name
指定したグループ名に EXECUTE 特権と BIND 特権を付与します。
GRANT_USER user-name
指定したユーザー名に EXECUTE 特権と BIND 特権を付与します。
GRANT_ROLE role-name
指定したロール名に EXECUTE 特権と BIND 特権を付与します。
INSERT
Db2 Enterprise Server Edition サーバーへプリコンパイルまたはバインドされているプログラムが、パフォーマンス向上のために挿入データをバッファリングすることを要求できるようにします。
BUF
アプリケーションからの挿入データをバッファリングすることを指定します。
DEF
アプリケーションからの挿入データをバッファリングしないことを指定します。
ISOLATION
このパッケージにバインドされるプログラムを、 他の実行プログラムの影響からどの程度分離できるかを指定します。
CS
カーソル固定を分離レベルとして指定します。
NC
コミットなし。コミットメント制御が使用されないということを指定します。 なお、Db2 for Linux, UNIX, and Windows はこの分離レベルをサポートしません。
RR
反復可能読み取りを分離レベルとして指定します。
RS
読み取り固定を分離レベルとして指定します。読み取り固定は、パッケージ内での SQL ステートメントの実行を、 他のアプリケーションが読み取りおよび変更を行った行に対する処理から分離させます。
UR
非コミット読み取りを分離レベルとして指定します。
IMMEDWRITE
グループ・バッファー・プールに従属するページセットまたはデータベース・パーティションに対する更新について、即時書き込みを行うかどうかを示します。 サポートしているのは Db2 for OS/390 だけです。サポートされているオプション値のリストについては、Db2 for OS/390 の資料を参照してください。
KEEPDYNAMIC

このパラメーターは、コミット・ポイントの後で動的 SQL ステートメントを保持するかどうかを指定します。

Db2 for z/OS でサポートされているオプション値のリストについては、Db2 for z/OS インフォメーション・センターの資料を参照してください。

Db2 for Linux, UNIX, and Windows バージョン 9.8 フィックスパック 2 以降では、パッケージに対する KEEPDYNAMIC バインド・オプションの値を変更することができます。その際、新たなバインド操作は必要ないので、次のバインド操作が行われるまで、不必要な再コンパイルを避けることができます。 KEEPDYNAMIC バインド・オプションは、動的 SQL ステートメントが COMMIT または ROLLBACK の後にも保持されるかどうかを指定することにより、準備済みステートメントに関連付けられたステートメント・テキストとセクションが SQL コンテキストにとどまる期間を制御します。

YES

準備済みステートメントに関連付けられたステートメント・テキストとセクションが SQL コンテキストで無期限に保持されるように指示します。 動的 SQL ステートメントは複数のトランザクション間で保持されます。 KEEPDYNAMIC YES を使ってバインド済みのすべてのパッケージは、デフォルトで、既存のパッケージ・キャッシュの動作との互換性を保ちます。

No

各作業単位の終わりに、準備済みステートメントに関連付けられたステートメント・テキストとセクションが SQL コンテキストで除去されるように指示します。 KEEPDYNAMIC NO を使ってバインド済みのパッケージ内に準備された非アクティブの動的 SQL ステートメントは、COMMIT または ROLLBACK 操作の間に SQL コンテキストから除去されます。ステートメントは、新しいトランザクションの中で再び準備される必要があります。 クライアント、ドライバー、またはアプリケーションは、再使用を望むすべての動的 SQL ステートメントを、新しい作業単位で再び準備する必要があります。 パッケージがリモート・アプリケーションによって実行される場合には、準備済みステートメントの実行可能バージョンは、トランザクション終了時に、アプリケーション SQL コンテキストとの関連がなくなります。

アクティブな動的 SQL ステートメントは、それらが非アクティブになる次の COMMIT または ROLLBACK 操作まで、保持される必要があります。 動的 SQL ステートメントがトランザクション境界でアクティブであることのできる、次のようなシチュエーションがあります。
  • WITH HOLD オプションを使って宣言されたカーソルが、コミット・ポイントで開いている。
  • 動的 SQL ステートメントが COMMIT または ROLLBACK 操作を実行している。
  • COMMIT または ROLLBACK 操作を実行するストアード・プロシージャーまたはユーザー定義関数を、動的 SQL ステートメントが呼び出す。
MESSAGES message-file
警告メッセージ、エラー・メッセージ、 および完了状況メッセージの宛先を指定します。 メッセージ・ファイルは、バインドが正常であるかどうかによって作成されます。 メッセージ・ファイル名を指定しなかった場合、メッセージは標準出力に書き込まれます。 ファイルへの完全パスを指定しなかった場合は、現行ディレクトリーが使用されます。 なお、既存ファイルの名前を指定すると、そのファイルの内容は上書きされます。
OPTHINT
照会最適化ヒントを静的 SQL に使用するかどうかを制御します。 サポートしているのは Db2 for OS/390 だけです。サポートされているオプション値のリストについては、Db2 for OS/390 の資料を参照してください。
OPTPROFILE optimization-profile-name
パッケージ内のすべての静的ステートメントに使用される既存の最適化プロファイルの名前を指定します。このオプションのデフォルト値は、 空ストリングです。この値は CURRENT OPTIMIZATION PROFILE 特殊レジスターが NULL である DML ステートメントの動的準備のデフォルトとしても適用されます。指定された名前が修飾されていない場合、それは SQL 識別子であり、QUALIFIER バインド・オプションによって暗黙的に修飾されます。

BIND コマンドは最適化ファイルを処理せず、名前が構造的に有効であることだけを確認します。したがって、最適化プロファイルが存在しないか無効である場合、最適化プロファイルを使用して DML ステートメントが最適化されるまで、理由コード 13 の SQL0437W 警告は発生しません。

OS400NAMING
Db2 for System i® データにアクセスする際に使用する命名オプションを指定します。 サポートしているのは Db2 for System i だけです。 サポートされているオプション値のリストについては、Db2 for System i の資料を参照してください。

区切り記号としてスラッシュが使用されているため、Db2 ユーティリティーが OS400NAMING SYSTEM オプションを指定してプリコンパイルまたはバインドされていても、このユーティリティーは、System i システムの命名規則を使用する特定の SQL ステートメントに関して実行時に構文エラーを報告することがあります。例えば、OS400NAMING SYSTEM オプションを指定してプリコンパイルまたはバインドされているかどうかには関係なく、System i システムの命名規則が使用されている場合、コマンド行プロセッサーは SQL CALL ステートメントに関して構文エラーを報告します。

OWNER authorization-id
パッケージ所有者の 128 バイトの許可 ID を指定します。 その所有者には、パッケージに含まれる SQL ステートメントを実行するための特権が必要です。 DBADM 権限を持つユーザーのみが、ユーザー ID 以外の許可 ID を指定できます。 デフォルト値は、プリコンパイル/バインド処理の呼び出し側の許可 ID です。 SYSIBM、SYSCAT、および SYSSTAT はこのオプションには無効な値です。 authorization-id はユーザーでなければなりません。 OWNER オプションを使用してロールまたはグループを指定することはできません。
PATH
静的 SQL で、ユーザー定義の特殊タイプおよび機能を解析する際に使用する関数パスを指定します。 このオプションを指定しなかった場合、 デフォルトの関数パスは "SYSIBM"、"SYSFUN"、または USER になります。 ここで USER は USER 特殊レジスターの値です。
schema-name
SQL ID (通常または区切り)。 これは、アプリケーション・サーバーに存在するスキーマを識別します。 スキーマが存在する場合、プリコンパイル時やバインド時に妥当性検査は行われません。
QUALIFIER qualifier-name
パッケージに含まれる非修飾オブジェクトの 128 バイトの暗黙修飾子を指定します。 OWNER が明示的に指定されているかどうかにかかわらず、その所有者の許可 ID がデフォルト ID になります。
QUERYOPT optimization-level
パッケージに含まれるすべての静的 SQL ステートメントに必要な最適化レベルを指示します。 デフォルト値は 5 です。 SET CURRENT QUERY OPTIMIZATION ステートメントが、使用できる最適化レベルの範囲の詳細を記述します。
RELEASE
リソースを、各 COMMIT ポイントで解放するか、 アプリケーションの終了時に解放するかどうかを指示します。 なお、Db2 for Linux, UNIX, and Windows はこの DRDA プリコンパイル/BIND オプションをサポートしません。 Db2 z/OS バージョン 10 以降のサーバーでは、デフォルト値は DEALLOCATE です。
COMMIT
各コミット点でリソースを解放します。 これは、動的 SQL ステートメントに使用されます。
DEALLOCATE
アプリケーションの終了時にだけリソースを解放します。
SORTSEQ
System i で使用するソート・シーケンス表を指定します。 サポートしているのは Db2 for System i だけです。 サポートされているオプション値のリストについては、Db2 for System i の資料を参照してください。
SQLERROR
エラーを検出した場合に、 パッケージまたはバインド・ファイルを作成するかどうかを指示します。
CHECK
ターゲット・システムが、バインドされている SQL ステートメントの すべての構文、およびセマンティックの検査を行うことを指定します。 この処理の一部としてパッケージが作成されることはありません。 バインド中に、名前とバージョンが同じ既存パッケージを検出した場合、その既存パッケージはドロップも置換 (ACTION REPLACE を指定した場合) もされません。
CONTINUE
SQL ステートメントのバインド時にエラーが発生しても、パッケージを作成します。 許可または存在などの理由でバインドに失敗したこれらのステートメントは、VALIDATE RUN も指定されている場合は、実行時に増分でバインドすることができます。実行時にこれらのステートメントを実行しようとすると、 エラー (SQLCODE -525, SQLSTATE 51015) が生成されます。
NOPACKAGE
エラーを検出した場合、パッケージもバインド・ファイルも作成しません。
REOPT
Db2 がホスト変数、パラメーター・マーカー、グローバル変数、および特殊レジスターの値を使用して実行時にアクセス・パスを判別するようにするかどうかを指定します。 有効な値は以下のとおりです。
NONE
ホスト変数、パラメーター・マーカー、グローバル変数、または特殊レジスターを含む SQL ステートメントのアクセス・パスは、実際の値によって最適化されません。 これらの変数のデフォルトの推定値が使用され、 このプランがキャッシュされて使用されます。 これはデフォルト値です。
ONCE
最初に照会が実行されるときに、ホスト変数、パラメーター・マーカー、グローバル変数、または特殊レジスターの実際の値によって、SQL ステートメントのアクセス・パスが最適化されます。 このプランがキャッシュされて使用されます。
ALWAYS
照会が実行されるたびに、ホスト変数、パラメーター・マーカー、グローバル変数、 または特殊レジスターの既知の値によって、SQL ステートメントのアクセス・パスが必ずコンパイルおよび再最適化されます。
REOPT | NOREOPT VARS
これらのオプションは、REOPT ALWAYS および REOPT NONE によって置き換えられましたが、前のものとの互換性のために引き続きサポートされています。 Db2 がホスト変数、グローバル変数、パラメーター・マーカー、および特殊レジスターの値を使用して実行時にアクセス・パスを判別するようにするかどうかを指定します。 サポートしているのは Db2 for OS/390 だけです。サポートされているオプション値のリストについては、Db2 for OS/390 の資料を参照してください。
SQLWARN
動的 SQL ステートメントのコンパイル時 (PREPARE または EXECUTE IMMEDIATE を通して)、 または記述処理時 (PREPARE...INTO または DESCRIBE を通して) に警告を戻すかどうかを指示します。
NO
SQL コンパイラーから警告を戻しません。
YES
SQL コンパイラーから警告を戻します。
SQLCODE +236、+237、および +238 は例外です。 それらは、SQLWARN オプションの値が何であろうと戻されます。
STATICREADONLY
静的カーソルを READ ONLY または INSENSITIVE として扱うかどうかを指定します。
NO
すべての静的カーソルは、ステートメント・テキストと LANGLEVEL プリコンパイル・オプションの設定に基づいて通常生成される場合と同じ属性を取ります。 これはデフォルト値です。
YES
FOR UPDATE または FOR READ ONLY 節を含まない静的カーソルは、 READ ONLY と見なされます。
INSENSITIVE
FOR UPDATE 節を含まない静的カーソルは、 READ ONLY または INSENSITIVE と見なされます。
STRDEL
SQL ステートメントで使用するストリング区切り文字として、 アポストロフィ (') または二重引用符 (") のどちらを使用するか指定します。 このプリコンパイル/バインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。 このオプションを指定しないと、DRDA サーバーは、組み込みのデフォルト値を使用します。
APOSTROPHE
ストリング区切り文字として、アポストロフィ (') を使用します。
QUOTE
ストリング区切り文字として、二重引用符 (") を使用します。
STRING_UNITS
文字データ・タイプとグラフィック・データ・タイプが静的 SQL ステートメントで明示的なストリング単位なしで使用された場合の、ストリング単位を指定します。 デフォルト値は、対象のデータベースの string_units データベース構成パラメーターの設定値に基づきます。
SYSTEM
この設定は、Unicode データベースでは以下の影響を与えます。
  • CODEUNITS32 キーワードを指定せずに定義された CHAR、VARCHAR、および CLOB データ・タイプがデフォルトで OCTETS に設定されます。
  • CODEUNITS32 キーワードを指定せずに定義された GRAPHIC、VARGRAPHIC、および DBCLOB のデータ・タイプは、デフォルトの CODEUNITS16 になる。
この設定は、Unicode 以外のデータベースでは以下の影響を与えます。
  • CODEUNITS32 キーワードを指定せずに定義された CHAR、VARCHAR、および CLOB データ・タイプがデフォルトで OCTETS に設定されます。
  • GRAPHIC、VARGRAPHIC、および DBCLOB のデータ・タイプには、2 バイトの暗黙的なストリング単位が保持される。
CODEUNITS32
この設定は、Unicode データベースにのみ有効で、以下の影響を与えます。
  • BYTE または OCTETS キーワードを指定せずに定義された CHAR、VARCHAR、および CLOB のデータ・タイプは、デフォルトの CODEUNITS32 になる。
  • CODEUNITS16 キーワードを指定せずに定義された GRAPHIC、VARGRAPHIC、および DBCLOB のデータ・タイプは、デフォルトの CODEUNITS32 になる。
SYSTIMESENSITIVE
静的および動的 SQL ステートメントでのシステム期間テンポラル表への参照が、CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターの値の影響を受けるかどうかを示します。
YES
システム期間テンポラル表への参照は、CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターの値の影響を受けます。 この値はデフォルト値です。
NO
システム期間テンポラル表への参照は、CURRENT TEMPORAL SYSTEM_TIME 特殊レジスターの値の影響を受けません。
TEXT label
パッケージの記述。 最大長は 255 文字です。 また、デフォルト値はブランクです。 このプリコンパイル/バインド・オプションは、Db2 for Linux, UNIX, and Windows 用のサーバーではサポートされません。
TRANSFORM GROUP
静的 SQL ステートメントが、 ユーザー定義の構造化タイプの値をホスト・プログラムと交換するために使用する、 変換グループ名を指定します。 この変換グループは、動的 SQL ステートメントには使用されません。 また、パラメーターの交換や外部関数またはメソッドの結果にも使用されません。
groupname
SQL ID。長さは最大で 18 バイトです。 グループ名には、修飾子接頭部を含めることはできません。 また、接頭部 SYS はデータベースで使用するために予約されているので、 その接頭部は使用できません。 ホスト変数とやりとりする静的 SQL ステートメントでは、 構造化タイプの値の交換に使用する変換グループの名前は以下のようになります。
  • TRANSFORM GROUP BIND オプション内のグループ名 (もしあれば)
  • TRANSFORM GROUP 準備オプション内のグループ名。 最初のプリコンパイル時に指定したとおりのもの (もしあれば)
  • Db2_PROGRAM グループ。 グループ名が Db2_PROGRAM の、特定のタイプに対する変換がある場合。
  • 上にリストされた条件のいずれもない場合には、変換グループは使用されません。
静的 SQL ステートメントのバインド時には、 以下のエラーが発生する可能性があります。
  • SQLCODE yyyyy, SQLSTATE xxxxx: 変換が必要ですが、静的変換グループが選択されていません。
  • SQLCODE yyyyy, SQLSTATE xxxxx: 選択された変換グループには、交換するデータ・タイプに必要な変換が含まれていません (入力変数用の TO SQL、出力変数用の FROM SQL)。
  • SQLCODE yyyyy, SQLSTATE xxxxx: FROM SQL 変換の結果タイプは、出力変数のタイプと互換性がありません。または、TO SQL 変換のパラメーター・タイプは、入力変数のタイプと互換性がありません。
これらのエラー・メッセージで、yyyyy は SQL エラー・コードによって置き換えられ、 xxxxx は SQL 状態コードによって置き換えられます。
VALIDATE
データベース・マネージャーが、許可エラーとエラー未検出のオブジェクトをいつ検査するかを判別します。 この妥当性検査には、パッケージ所有者の許可 ID が使用されます。
BIND
プリコンパイル/バインド時に妥当性検査が実行されます。 オブジェクトが 1 つもない場合、または権限がまったく保持されていない場合、エラー・メッセージが作成されます。 SQLERROR CONTINUE を指定した場合、エラー・メッセージにかかわらずパッケージ/バインド・ファイルは作成されますが、エラーのあるステートメントは実行できません。
RUN
バインド時に妥当性検査が行われます。 すべてのオブジェクトが存在し、全権限が保持されていれば、 それ以上実行しても検査は行われません。

プリコンパイル/バインド時にオブジェクトが 1 つもない場合、または権限がまったく保持されていない場合、SQLERROR CONTINUE オプションの設定とは無関係に警告メッセージが作成されて、パッケージは正常にバインドされます。ただし、プリコンパイル/バインド処理時に SQL ステートメントの権限検査と存在検査に障害が生じた場合、 実行時に再実行される可能性があります。

以下は、myapp.bnd (myapp.sqc プログラムのプリコンパイル時に生成されるバインド・ファイル) と接続が確立しているデータベースをバインドする例です。
   db2 bind myapp.bnd

バインド処理で生じたすべてのメッセージは、標準出力に送信されます。

使用上の注意

REOPT オプションに ONCE またはALWAYS 値を指定してパッケージをバインディングすると、 静的および動的ステートメントのコンパイルおよびパフォーマンスが変化することがあります。

バインド処理は、 アプリケーション・プログラムのソース・ファイルのプリコンパイル処理の一部として実行することもできますし、 別のプロセスとして後から実行することもできます。 バインドを別のプロセスとして実行するときは BIND を使用します。

パッケージを作成するのに使われた名前はバインド・ファイルに保管されます。 その名前は、その名前が生成されたソース・ファイルの名前を基にして付けられます (既存のパスや拡張子は取り除かれます)。 例えば、myapp.sql というプリコンパイル・ソース・ファイルは、myapp.bnd というデフォルト・バインド・ファイルとデフォルト・パッケージ名の MYAPP を生成します。 ただし、BINDFILE および PACKAGE オプションを使用すれば、 プリコンパイル時にバインド・ファイル名とパッケージ名を指定変更することができます。

既に存在しないスキーマ名にパッケージをバインドすると、 そのスキーマを暗黙に作成することになります。 スキーマの所有者は SYSIBM になります。 スキーマに対する CREATEIN 特権が PUBLIC に付与されます。

BIND は、開始されたトランザクションのもとで実行されます。 バインドの実行後、BIND は COMMIT または ROLLBACK を出して、現行トランザクションを終了させ、別のトランザクションを開始します。

致命的エラーまたは 100 を超えるエラーが生じた場合、バインドは停止します。 致命的エラーが生じた場合、ユーティリティーは処理を停止させ、 全ファイルのクローズを試み、そのパッケージを廃棄します。

パッケージがバインド動作を公開するとき、以下のとおりとなります。
  1. BIND オプション OWNER の暗黙的または明示的な値は、動的 SQL ステートメントの許可検査に使用されます。
  2. BIND オプション QUALIFIER の暗黙的または明示的な値は、 動的 SQL ステートメント内の非修飾オブジェクトを修飾するための暗黙的修飾子として使用されます。
  3. 特殊レジスター CURRENT SCHEMA の値は、修飾には影響しません。

単一の接続で複数のパッケージが参照される場合、 これらのパッケージによって準備されたすべての動的 SQL ステートメントは その特定のパッケージおよびそれらが使用される環境について DYNAMICRULES オプションで指定された動作をします。

SQL0020W メッセージに表示されるパラメーターは正しくエラーと示され、 メッセージが示すとおりに無視されます。

SQL ステートメントがエラーであることが検出され、BIND オプション SQLERROR CONTINUE が指定されている場合、このステートメントは無効とマークされます。この SQL ステートメントの状態を変えるためには、さらに別の BIND を発行する必要があります。 暗黙的および明示的な再バインドでは、無効なステートメントの状態は変わりません。 VALIDATE RUN でバインドされたパッケージの場合、 ステートメントは、再バインド時にオブジェクトが存在するかどうか、または権限の問題があるかどうかに応じて、 暗黙的再バインドと明示的再バインドの両方で、静的バインドから追加バインドに変更されたり、追加バインドから静的バインドに変更されたりします。

パッケージのバインドに使用される許可 ID (OWNER バインド・オプションの値) に付与されているロールの特権、または PUBLIC への特権が、パッケージのバインド時に考慮されます。 パッケージのバインドに使用される許可 ID がメンバーであるグループから取得したロールは使用されません。

組み込み SQL プログラムでは、BIND オプションが明示的に指定されていない場合、 パッケージ内の静的ステートメントは federated_async 構成パラメーターを使用してバインドされます。 FEDERATED_ASYNCHRONY BIND オプションが明示的に指定されている場合、値はパッケージのバインドに使用され、特殊レジスターの初期値ともなります。 指定されていない場合、データベース・マネージャー構成パラメーターの値が特殊レジスターの初期値として使用されます。 FEDERATED_ASYNCHRONY BIND オプションは、明示的に設定されている場合に限り、動的 SQL に影響を与えます。

FEDERATED_ASYNCHRONY BIND オプションの値は、SYSCAT.PACKAGES カタログ表の FEDERATED_ASYNCHRONY 列に記録されます。 この BIND オプションが明示的に指定されていない場合は、 federated_async 構成パラメーターの値が使用され、 カタログの FEDERATED_ASYNCHRONY 列には値 -2 が示されます。

パッケージのバインド時に BIND オプション FEDERATED_ASYNCHRONY が明示的に指定されていないと、 そのパッケージが暗黙的または明示的に再バインドされる場合、パッケージの再バインドには federated_async 構成パラメーターの現行値が使用されます。