BIND コマンド

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

範囲

このコマンドは、 db2nodes.cfgの任意のデータベース・パーティションから発行できます。 カタログ・データベース・パーティション上の データベース ・カタログを更新します。 その影響はすべてのデータベース・パーティションから見えます。

許可

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

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

必要な接続

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

コマンド構文

For Db2®
構文図を読むビジュアル構文図をスキップBINDfilenameACTIONADDREPLACERETAINNOYESREPLVERバージョン IDAPREUSENOYESBLOCKINGUNAMBIGALLNOBUSTIMESENSITIVEYESNOCLIPKGcli-パッケージCOLLECTIONschema-nameCONCURRENTACCESSRESOLUTIONUSECURRENTLYCOMMITTEDWAITFOROUTCOMEUSE CURRENTLY COMMITTEDWAIT FOR OUTCOMEDATETIMEDEFEURISOJISLOCUSADEGREE1並列処理の度合いANYDYNAMICRULESRUNBINDINVOKERUNINVOKEBINDDEFINERUNDEFINEBINDEXPLAINNOALLREOPTONLYYESEXPLSNAPNOALLREOPTYESEXTENDEDINDICATORNOYESFEDERATEDNOYESFEDERATED_ASYNCHRONYANYプラン内の atqs_in_the_plan の数FUNCPATH,schema-nameGENERIC" ストリング"GRANTauthidPUBLICGRANT_GROUPgroup-nameGRANT_USERユーザー名GRANT_ROLErole-nameINSERTDEFBUFISOLATIONCSRRRSURKEEPDYNAMICYESNO MESSAGESメッセージ・ファイルOPTPROFILE最適化プロファイル名OWNERauthorization-idQUALIFIER修飾子名QUERYOPT最適化レベルREOPT NONEREOPT ONCEREOPT ALWAYSSQLERRORCHECKCONTINUENOPACKAGESQLWARNNOYESSTATICREADONLYNOYESINSENSITIVESTRING_UNITSSYSTEMCODEUNITS32SYSTIMESENSITIVEYESNOTRANSFORM GROUPgroupnameVALIDATEBINDRUN
For Db2 on servers other than Linux®, Windows and UNIX
Read syntax diagramSkip visual syntax diagramBINDfilenameACTIONADDREPLACERETAINNOYESREPLVERversion-idBLOCKINGUNAMBIGALLNOCCSIDGdouble-ccsidCCSIDMmixed-ccsidCCSIDSsbcs-ccsidCHARSUBDEFAULTBITMIXEDSBCSCLIPKGcli-packagesCNULREQDNOYESCOLLECTIONschema-nameCONCURRENTACCESSRESOLUTIONUSECURRENTLYCOMMITTEDWAITFOROUTCOMEUSE CURRENTLY COMMITTEDWAIT FOR OUTCOME1DATETIMEDEFEURISOJISLOCUSADBPROTOCOLDRDAPRIVATEDEC1531DECDELCOMMAPERIOD2DEGREE1degree-of-parallelismANYDYNAMICRULESRUNBINDINVOKERUNINVOKEBINDDEFINERUNDEFINEBINDENCODINGASCIIEBCDICUNICODECCSID3EXPLAINNOYESEXTENDEDINDICATORNOYESGENERIC" string"GRANTauthidPUBLICIMMEDWRITENOYESPH1INSERTBUFDEFISOLATIONCSNCRRRSURKEEPDYNAMICYESNO MESSAGESmessage-fileOPTHINThint-idOS400NAMINGSYSTEMSQLOWNERauthorization-idPATHschema-nameQUALIFIERqualifier-nameRELEASECOMMITDEALLOCATEREOPT NONEREOPT ONCEREOPT ALWAYSREOPT VARSNOREOPT VARSSORTSEQJOBRUNHEXSQLERRORCHECKCONTINUENOPACKAGEVALIDATEBINDRUNSTRDELAPOSTROPHEQUOTETEXTlabel
Notes:
  • 1 If the server does not support the DATETIME DEF option, it is mapped to DATETIME ISO.
  • 2 The DEGREE option is only supported by DRDA Level 2 Application Servers.
  • 3 DRDA defines the EXPLAIN option to have the value YES or NO. If the server does not support the EXPLAIN YES option, the value is mapped to 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のサーバーではサポートされていません。 このオプションが指定されていない場合、DRDA サーバーは組み込みのデフォルト値を使用します。
CCSIDM mixed-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字カラム定義で、 混合バイト文字用のコード化文字セット ID (CCSID) (特定の CCSID 節は使用しない) を指定する整数。 このオプションは、 Db2のサーバーではサポートされていません。 このオプションが指定されていない場合、DRDA サーバーは組み込みのデフォルト値を使用します。
CCSIDS sbcs-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字カラム定義で、 1 バイト文字用のコード化文字セット ID (CCSID) (特定の CCSID 節は使用しない) を指定する整数。 このオプションは、 Db2ではサポートされていません。 このオプションが指定されていない場合、DRDA サーバーは組み込みのデフォルト値を使用します。
CHARSUB
CREATE および ALTER TABLE SQL ステートメントの列定義に使用する、 デフォルトの文字サブタイプを指定します。 このプリコンパイル/bind オプションは、 Db2のサーバーではサポートされていません。
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のサーバーではサポートされていません。
NO
アプリケーションは、C文字列ホスト変数のヌルターミネータに関して 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
U.S日時形式には IBM 標準を使用してください。
DBPROTOCOL
3 部構成の名前のステートメントによって識別されるリモート・サイトに接続するときに 使用するプロトコルを指定します。 Db2 for z/OS® でのみサポートされます。 サポートされるオプション値のリストについては、 Db2 for z/OSの資料を参照してください。
DEC
10 進算術演算に使用する最大精度を指定します。 このプリコンパイル/bind オプションは、 Db2のサーバーではサポートされていません。 このオプションが指定されていない場合、DRDA サーバーは組み込みのデフォルト値を使用します。
15
10 進算術演算に 15 桁精度が使用されます。
31
10 進算術演算に 31 桁精度が使用されます。
DECDEL
10 進数および浮動小数点リテラル中で小数点標識としてピリオド (.) またはコンマ (,) のどちらかを指定します。 このプリコンパイル/bind オプションは、 Db2のサーバーではサポートされていません。 このオプションが指定されていない場合、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ステートメントは、DYNAMICRULESRUNにバインドされていないパッケージでは使用できません:GRANT、REVOKE、ALTER、CREATE、DROP、COMMENT ON、RENAME、SET INTEGRITY、およびSET EVENTMONITORSTATE。

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 表にはデータが入りますが、永続的パッケージは作成されません。 バインドプロセス中に同じ名前とバージョンの既存のパッケージが検出された場合、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に設定された場合でも、実行時に適格な動的SQLステートメントのexplainスナップショット情報が収集されます。

パッケージがルーチンに使用される場合、 そのルーチンは 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 の数を判別します。 オプティマイザーは、プラン内の適格な SHIP またはリモート・プッシュダウン演算子すべてに ATQ を割り当てます。 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 以降のサーバーに接続する場合、 BIND コマンドの GENERIC オプションを使用して、アプリケーション互換性特殊レジスター設定 (APPLCOMPAT) を指定できます。

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

Db2 for IBM® 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ではサポートされていません。
RR
反復可能読み取りを分離レベルとして指定します。
RS
読み取り固定を分離レベルとして指定します。 読み取り固定は、パッケージ内での SQL ステートメントの実行を、 他のアプリケーションが読み取りおよび変更を行った行に対する処理から分離させます。
UR
非コミット読み取りを分離レベルとして指定します。
IMMEDWRITE
グループ・バッファー・プールに従属するページセットまたはデータベース・パーティションに対する更新について、即時書き込みを行うかどうかを示します。 Db2 for OS/390 でのみサポートされます。 サポートされるオプション値のリストについては、 Db2 for OS/390の資料を参照してください。
KEEPDYNAMIC

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

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

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

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 IDであり、QUALIFIERバインド・オプションによって暗黙的に修飾されます。

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

OS400NAMING
Db2 for System i ® データにアクセスするときに使用する命名オプションを指定します。 Db2 for System i でのみサポートされます。 サポートされるオプション値のリストについては、 Db2 for IBM iの資料を参照してください。
分離文字としてスラッシュが使用されているため、 Db2 ユーティリティーは、 OS400NAMING SYSTEM オプションを指定してプリコンパイルまたはバインドされている可能性があっても、 System i システム命名規則を使用する特定の SQL ステートメントで実行時に構文エラーを報告することができます。 例えば、 System i システム命名規則が使用されている場合、 OS400NAMING SYSTEM オプションを使用してプリコンパイルまたはバインドされているかどうかに関係なく、コマンド行プロセッサーは 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になります。
QUERYOPT optimization-level
パッケージに含まれるすべての静的 SQL ステートメントに必要な最適化レベルを指示します。 デフォルト値は 5 です。 SET CURRENT QUERY OPTIMIZATION ステートメントは、使用可能な最適化レベルの全範囲を説明します。
RELEASE
リソースを、各 COMMIT ポイントで解放するか、 アプリケーションの終了時に解放するかどうかを指示します。 この DRDA プリコンパイル/binD オプションは、 Db2ではサポートされていません。 Db2 for z/OS バージョン 10 以降のサーバーの場合、デフォルト値は DEALLOCATE です。
COMMIT
各コミット点でリソースを解放します。 これは、動的 SQL ステートメントに使用されます。
DEALLOCATE
アプリケーションの終了時にだけリソースを解放します。
SORTSEQ
System iで使用するソート順序テーブルを指定します。 Db2 for IBM i でのみサポートされます。 サポートされるオプション値のリストについては、 Db2 for System iの資料を参照してください。
SQLERROR
エラーが起きた場合にパッケージあるいはバインド・ファイルを作成するかどうかを指示します。
CHECK
ターゲット・システムが、バインドされている SQL ステートメントの すべての構文、およびセマンティックの検査を行うことを指定します。 この処理の一部としてパッケージが作成されることはありません。 バインド中に、同じ名前とバージョンの既存のパッケージが検出された場合、ACTIONREPLACEが指定されても、既存のパッケージは削除も置換もされません。
CONTINUE
SQL ステートメントのバインド時にエラーが発生しても、パッケージを作成します。 許可または存在の理由でバインドに失敗したステートメントは、VALIDATE RUNも指定された場合、実行時に段階的にバインドできます。 実行時にこれらのステートメントを実行しようとすると、 エラー (SQLCODE -525, SQLSTATE 51015) が生成されます。
NOPACKAGE
エラーを検出した場合、パッケージもバインド・ファイルも作成しません。
REOPT
Db2 がホスト変数、パラメーター・マーカー、グローバル変数、および特殊レジスターの値を使用して実行時にアクセス・パスを判別するようにするかどうかを指定します。 有効な値は以下のとおりです。
NONE
ホスト変数、パラメーター・マーカー、グローバル変数、または特殊レジスターを含む SQL ステートメントのアクセス・パスは、実際の値によって最適化されません。 これらの変数のデフォルトの推定値が使用され、 このプランがキャッシュされて使用されます。 これはデフォルト値です。
ONCE
最初に照会が実行されるときに、ホスト変数、パラメーター・マーカー、グローバル変数、または特殊レジスターの実際の値によって、SQL ステートメントのアクセス・パスが最適化されます。 このプランがキャッシュされて使用されます。
ALWAYS
照会が実行されるたびに、ホスト変数、パラメーター・マーカー、グローバル変数、 または特殊レジスターの既知の値によって、SQL ステートメントのアクセス・パスが必ずコンパイルおよび再最適化されます。
REOPT | NOREOPT VARS
これらのオプションは、REOPT ALWAYSREOPT NONEに置き換えられました。ただし、以前の互換性のために引き続きサポートされています。 Db2 がホスト変数、グローバル変数、パラメーター・マーカー、および特殊レジスターの値を使用して実行時にアクセス・パスを判別するようにするかどうかを指定します。 Db2 for OS/390 でのみサポートされます。 サポートされるオプション値のリストについては、 Db2 for OS/390の資料を参照してください。
SQLWARN
警告が動的SQLステートメントのコンパイル(PREPAREまたはEXECUTE IMMEDIATEを介して)から返されるのか、describe処理(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 ステートメントで使用するストリング区切り文字として、 アポストロフィ (') または二重引用符 (") のどちらを使用するか指定します。 このプリコンパイル/bind オプションは、 Db2のサーバーではサポートされていません。 このオプションが指定されていない場合、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 文字です。 また、デフォルト値はブランクです。 このプリコンパイル/bind オプションは、 Db2のサーバーではサポートされていません。
TRANSFORM GROUP
静的 SQL ステートメントが、 ユーザー定義の構造化タイプの値をホスト・プログラムと交換するために使用する、 変換グループ名を指定します。 この変換グループは、動的 SQL ステートメントには使用されません。 また、パラメーターの交換や外部関数またはメソッドの結果にも使用されません。
groupname
SQL ID。長さは最大で 18 バイトです。 グループ名には、修飾子接頭部を含めることはできません。 また、接頭部 SYS はデータベースで使用するために予約されているので、 その接頭部は使用できません。 ホスト変数とやりとりする静的 SQL ステートメントでは、 構造化タイプの値の交換に使用する変換グループの名前は以下のようになります。
  • TRANSFORM GROUPバインド・オプションのグループ名 (ある場合)
  • 元のプリコンパイル時に指定されたTRANSFORM GROUPprepオプションのグループ名 (ある場合)
  • 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が指定されると、エラーメッセージが表示されても、package/ bindファイルが生成されますが、エラーのあるステートメントは実行できません。
RUN
バインド時に妥当性検査が行われます。 すべてのオブジェクトが存在し、全権限が保持されていれば、 それ以上実行しても検査は行われません。

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

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

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

使用上の注意

ONCEまたはALWAYS値が指定されたREOPTオプションを使用してパッケージをバインドすると、静的および動的ステートメントのコンパイルとパフォーマンスが変わる可能性があります。

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

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

既に存在しないスキーマ名にパッケージをバインドすると、 そのスキーマを暗黙に作成することになります。 スキーマの所有者は 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プログラムでは、バインド・オプションが明示的に指定されない場合、パッケージの静的ステートメントはfederated_async構成パラメーターにバインドされます。 FEDERATED_ASYNCHRONY バインド・オプションが明示的に指定された場合、その値はパッケージのバインドに使われ、特殊レジスターの初期値でもあります。 指定されていない場合、データベース・マネージャー構成パラメーターの値が特殊レジスターの初期値として使用されます。 FEDERATED_ASYNCHRONYバインド・オプションは、明示的に設定された場合にのみ動的SQLに影響します。

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

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