コマンド解説書

PRECOMPILE PROGRAM

組み込み SQL ステートメントの含まれているアプリケーション・プログラム・ソース・ファイルを処理します。 SQL ステートメントに対するホスト言語呼び出しを含む変更後のソース・ファイルが作成されます。 また、省略時値として、データベース内にパッケージが作成されます。

効力範囲

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

許可

以下のどれかが必要です。

ユーザーには、アプリケーション内の静的 SQL ステートメントをコンパイルするのに必要な特権もすべて必要になります。 グループに付与された特権は、静的ステートメントの許可検査では使用されません。 ユーザーに sysadm 権限があってバインドを完成させる明示特権がない場合、 データベース・マネージャーは、明示的な dbadm 権限を自動的に付与します。

必須接続

データベース。 暗黙接続が可能な場合には、省略時データベースへの接続が確立されます。

コマンド構文

DB2 の場合

>>-+-PRECOMPILE-+--filename------------------------------------->
   '-PREP-------'
 
>-----+----------------------------------+---------------------->
      '-BINDFILE--+-------------------+--'
                  '-USING--bind-file--'
 
>-----+-------------------------+------------------------------->
      |           .-UNAMBIG--.  |
      '-BLOCKING--+-ALL------+--'
                  '-NO-------'
 
>-----+--------------------------+---+------------------+------->
      '-COLLECTION--schema-name--'   |          .-1--.  |
                                     '-CONNECT--+-2--+--'
 
>-----+---------------------+---+----------------------------+-->
      |           .-DEF--.  |   |                   .-NO--.  |
      '-DATETIME--+-EUR--+--'   '-DEFERRED_PREPARE--+-ALL-+--'
                  +-ISO--+                          '-YES-'
                  +-JIS--+
                  +-LOC--+
                  '-USA--'
 
>-----+------------------------------------+-------------------->
      |         .-1---------------------.  |
      '-DEGREE--+-degree-of-parallelism-+--'
                '-ANY-------------------'
 
>-----+------------------------------+-------------------------->
      |             .-EXPLICIT----.  |
      '-DISCONNECT--+-AUTOMATIC---+--'
                    '-CONDITIONAL-'
 
>-----+-------------------------+---+-------------------+------->
      |               .-RUN--.  |   |          .-NO--.  |
      '-DYNAMICRULES--+-BIND-+--'   '-EXPLAIN--+-ALL-+--'
                                               '-YES-'
 
>-----+--------------------+---+---------------------+---------->
      |           .-NO--.  |   |            .-NO--.  |
      '-EXPLSNAP--+-ALL-+--'   '-FEDERATED--+-YES-+--'
                  '-YES-'
 
>-----+-------------------------------+---+-------------------+->
      |           .-,--------------.  |   |         .-DEF--.  |
      |           V                |  |   '-INSERT--+-BUF--+--'
      '-FUNCPATH-----schema-name---+--'
 
>-----+---------------------+---+------------------------+------>
      |            .-CS--.  |   |            .-SAA1---.  |
      '-ISOLATION--+-RR--+--'   '-LANGLEVEL--+-MIA----+--'
                   +-RS--+                   '-SQL92E-'
                   '-UR--'
 
>-----+----------------------------+---------------------------->
      |  (1)              .-NO--.  |
      '--------LONGERROR--+-YES-+--'
 
>-----+-------------------------+---+--------------+------------>
      '-MESSAGES--message-file--'   '-NOLINEMACRO--'
 
>-----+----------------------+---+-------------------+---------->
      |           .-   0--.  |   '-OUTPUT--filename--'
      '-OPTLEVEL--+-1-----+--'
 
>-----+--------------------------+------------------------------>
      '-OWNER--authorization-id--'
 
>-----+------------------------------------+-------------------->
      '-PACKAGE--+----------------------+--'
                 '-USING--package-name--'
 
>-----+-------------------------------------------+------------->
      '-PREPROCESSOR--+-"preprocessor-command"-+--'
                      '-'preprocessor-command'-'
 
>-----+----------------------------+---------------------------->
      '-QUALIFIER--qualifier-name--'
 
>-----+-------------------------------+---+------------------+-->
      '-QUERYOPT--optimization-level--'   |        .-SAA--.  |
                                          '-SQLCA--+-NONE-+--'
 
>-----+----------------------------------+---------------------->
      |  (2)             .-NOPACKAGE--.  |
      '--------SQLERROR--+-CHECK------+--'
                         '-CONTINUE---'
 
>-----+----------------------------------+---------------------->
      '-SQLFLAG--+-SQL92E----+---SYNTAX--'
                 +-MVSDB2V23-+
                 +-MVSDB2V31-+
                 '-MVSDB2V41-'
 
>-----+---------------------+---+--------------------+---------->
      |           .-DB2--.  |   |          .-YES--.  |
      '-SQLRULES--+-STD--+--'   '-SQLWARN--+-NO---+--'
 
>-----+---------------------------+---+---------+--------------->
      |            .-ONEPHASE--.  |   '-SYNTAX--'
      '-SYNCPOINT--+-NONE------+--'
                   '-TWOPHASE--'
 
>-----+--------------------------------+------------------------>
      |         .-IBMCOB------------.  |
      '-TARGET--+-MFCOB-------------+--'
                +-MFCOB16-----------+
                +-ANSI_COBOL--------+
                +-C-----------------+
                +-CPLUSPLUS---------+
                +-FORTRAN-----------+
                +-BORLAND_C---------+
                '-BORLAND_CPLUSPLUS-'
 
>-----+-----------------------------+---+---------------------+->
      '-TRANSFORM GROUP--groupname--'   |           .-RUN--.  |
                                        '-VALIDATE--+-BIND-+--'
 
>-----+----------------------------+---------------------------><
      |            .-NOCONVERT--.  |
      '-WCHARTYPE--+-CONVERT----+--'
 

注:

  1. NO は、32 ビット・システムと 64 ビット NT システムの省略時値です。 それらのシステムでは、長いホスト変数を INTEGER 列の宣言として使用できます。 YES は、64 ビット UNIX システムの省略時値です。

  2. SYNTAX は SQLERROR(CHECK) の同義語です。

DRDA の場合

>>-+-PRECOMPILE-+--filename------------------------------------->
   '-PREP-------'
 
>-----+----------------------------------------------------------------------------+>
      '-ACTION--+-ADD-----------------------------------------------------------+--'
                | .-REPLACE-.                                                   |
                '-+---------+--+-------------------+---+----------------------+-'
                               |         .-YES--.  |   '-REPLVER--version-id--'
                               '-RETAIN--+-NO---+--'
 
>-----+----------------------------------+---------------------->
      '-BINDFILE--+-------------------+--'
                  '-USING--bind-file--'
 
>-----+-------------------------+---+-----------------------+--->
      |           .-UNAMBIG--.  |   '-CCSIDG--double-ccsid--'
      '-BLOCKING--+-ALL------+--'
                  '-NO-------'
 
>-----+----------------------+---+---------------------+-------->
      '-CCSIDM--mixed-ccsid--'   '-CCSIDS--sbcs-ccsid--'
 
>-----+------------------------+---+---------------------+------>
      |          .-DEFAULT--.  |   |           .-YES--.  |
      '-CHARSUB--+-BIT------+--'   '-CNULREQD--+-NO---+--'
                 +-MIXED----+
                 '-SBCS-----'
 
>-----+--------------------------+---+------------------+------->
      '-COLLECTION--schema-name--'   |          .-1--.  |
                                     '-CONNECT--+-2--+--'
 
>-----+----------------------------+---+--------------+--------->
      |  (1)             .-DEF--.  |   '-DEC--+-15-+--'
      '--------DATETIME--+-EUR--+--'          '-31-'
                         +-ISO--+
                         +-JIS--+
                         +-LOC--+
                         '-USA--'
 
>-----+----------------------+---+----------------------------+->
      |         .-PERIOD--.  |   |                   .-NO--.  |
      '-DECDEL--+-COMMA---+--'   '-DEFERRED_PREPARE--+-ALL-+--'
                                                     '-YES-'
 
>-----+-------------------------------------------+------------->
      |  (2)           .-1---------------------.  |
      '--------DEGREE--+-degree-of-parallelism-+--'
                       '-ANY-------------------'
 
>-----+------------------------------+-------------------------->
      |             .-EXPLICIT----.  |
      '-DISCONNECT--+-AUTOMATIC---+--'
                    '-CONDITIONAL-'
 
>-----+---------------------------+---+-------------------+----->
      |               .-RUN----.  |   |          .-NO--.  |
      '-DYNAMICRULES--+-BIND---+--'   '-EXPLAIN--+-YES-+--'
                      +-DEFINE-+
                      '-INVOKE-'
 
>-----+---------------------+---+------------------+------------>
      |            .-NO--.  |   '-GENERIC--string--'
      '-FEDERATED--+-YES-+--'
 
>-----+---------------------+---+---------------------------+--->
      |            .-CS--.  |   '-LEVEL--consistency-token--'
      '-ISOLATION--+-NC--+--'
                   +-RR--+
                   +-RS--+
                   '-UR--'
 
>-----+----------------------------+---------------------------->
      |  (3)              .-NO--.  |
      '--------LONGERROR--+-YES-+--'
 
>-----+-------------------------+---+--------------+------------>
      '-MESSAGES--message-file--'   '-NOLINEMACRO--'
 
>-----+----------------------+---+--------------------------+--->
      |           .-   0--.  |   '-OWNER--authorization-id--'
      '-OPTLEVEL--+-1-----+--'
 
>-----+------------------------------------+-------------------->
      '-PACKAGE--+----------------------+--'
                 '-USING--package-name--'
 
>-----+-------------------------------------------+------------->
      '-PREPROCESSOR--+-"preprocessor-command"-+--'
                      '-'preprocessor-command'-'
 
>-----+----------------------------+---------------------------->
      '-QUALIFIER--qualifier-name--'
 
>-----+--------------------------+------------------------------>
      |          .-COMMIT-----.  |
      '-RELEASE--+-DEALLOCATE-+--'
 
>-----+----------------------------------+---------------------->
      '-SQLFLAG--+-SQL92E----+---SYNTAX--'
                 +-MVSDB2V23-+
                 +-MVSDB2V31-+
                 '-MVSDB2V41-'
 
>-----+---------------------+---+--------------------------+---->
      |           .-DB2--.  |   |         .-APOSTROPHE--.  |
      '-SQLRULES--+-STD--+--'   '-STRDEL--+-QUOTE-------+--'
 
>-----+---------------------------+---+---------+--------------->
      |            .-ONEPHASE--.  |   '-SYNTAX--'
      '-SYNCPOINT--+-NONE------+--'
                   '-TWOPHASE--'
 
>-----+--------------------------------+---+--------------+----->
      |         .-IBMCOB------------.  |   '-TEXT--label--'
      '-TARGET--+-MFCOB-------------+--'
                +-MFCOB16-----------+
                +-ANSI_COBOL--------+
                +-C-----------------+
                +-CPLUSPLUS---------+
                +-FORTRAN-----------+
                +-BORLAND_C---------+
                '-BORLAND_CPLUSPLUS-'
 
>-----+----------------------+---+----------------------------+-><
      '-VERSION--version-id--'   |            .-NOCONVERT--.  |
                                 '-WCHARTYPE--+-CONVERT----+--'
 

注:

  1. DATETIME DEF オプションは DRDA ではサポートされておらず、 DB2 コネクトを経て ISO にマップされます。

  2. DEGREE オプションは DRDA レベル 2 のアプリケーション・サーバーでしかサポートされていません。

  3. NO は、32 ビット・システムと 64 ビット NT システムの省略時値です。 それらのシステムでは、長いホスト変数を INTEGER 列の宣言として使用できます。 YES は、64 ビット UNIX システムの省略時値です。

コマンド・パラメーター

filename
プリコンパイルするソース・ファイルを指定します。 拡張子の指定は、以下のようになります。

UNIX 系システムにおいて、 組み込み SQL を含む C++ アプリケーションの場合に望ましい拡張子は sqC です。 しかし、UNIX 系システムでは、 大文字小文字を区別しないシステムのための sqx 規則も通用します。

ACTION
パッケージを追加または置換できるかどうかを示します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。

ADD
名前付きパッケージが存在せず、新規パッケージを作成するということを指示します。 すでにパッケージがある場合は、実行停止状態となり、診断エラー・メッセージが戻されます。

REPLACE
既存のパッケージを、ロケーション、コレクション、 およびパッケージ名が同じ新規パッケージと置き換えることを指示します。

RETAIN
パッケージを置き換えたときに EXECUTE 権限が保持されるかどうかを指示します。 パッケージの所有権を変更した場合、 新規所有者は前のパッケージ所有者に BIND 権限と EXECUTE 権限を付与します。

NO
パッケージを置き換えたとき、EXECUTE 権限を保持しません。

YES
パッケージを置き換えたとき、EXECUTE 権限を保持します。

REPLVER version-id
特定のバージョンのパッケージを置き換えます。 バージョン識別子は、どのバージョンのパッケージを置き換えるのかを指定するものです。 最大長は 254 文字です。

BINDFILE
バインド・ファイルが作成されます。 package オプションが共に指定されていない場合、 パッケージは作成されません。 次に示す例のように、バインド・ファイルを要求したのにパッケージが作成されないなら、

   db2 prep sample.sqc bindfile

オブジェクトの存在と認証 SQLCODE はエラーではなく警告として扱われます。 それで、プリコンパイルに使用されるデータベースに、アプリケーション内の静的 SQL ステートメントで参照されているすべてのオブジェクトが入っているわけではない場合でも、 バインド・ファイルは正常に作成されます。 必要なオブジェクトが作成されたなら、 バインド・ファイルは正常にバインドされ、パッケージが作成されます。

USING bind-file
プリコンパイラーが生成するバインド・ファイルの名前。 ファイル名には、.bnd 拡張子が付いていなければなりません。 ファイル名を入力しないなら、プリコンパイラーは、 filename パラメーターとして入力されているプログラムの名前を使用し、 それに .bnd 拡張子を付けてファイル名とします。 パスを指定しないと、バインド・ファイルは現行ディレクトリーに作成されます。

BLOCKING
行のブロック化については、 管理の手引き または アプリケーション開発の手引き を参照してください。

ALL
次のカーソルをブロック化することを指定します。
  • 読み取り専用カーソル。
  • FOR UPDATE OF と指定されていないカーソル。

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

NO
どのカーソルもブロック化しないことを指定します。 未確定のカーソルは、更新可能として扱われます。

UNAMBIG
次のカーソルをブロック化することを指定します。
  • 読み取り専用カーソル。
  • FOR UPDATE OF と指定されていないカーソル。

未確定のカーソルは、更新可能として扱われます。

CCSIDG double-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字列定義で、 2 バイト文字用のコード化文字セット識別子 (CCSID) (特定の CCSID 文節は使用しない) を指定する整数。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

CCSIDM mixed-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字列定義で、 混合バイト文字用のコード化文字セット識別子 (CCSID) (特定の CCSID 文節は使用しない) を指定する整数。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

CCSIDS sbcs-ccsid
CREATE および ALTER TABLE SQL ステートメントの文字列定義で、 1 バイト文字用のコード化文字セット識別子 (CCSID) (特定の CCSID 文節は使用しない) を指定する整数。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

CHARSUB
CREATE および ALTER TABLE SQL ステートメントの列定義に使用する、 省略時の文字サブタイプを指定します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。

BIT
明示的にサブタイプを指定しなかった場合、 すべての新規文字列に FOR BIT DATA SQL 文字サブタイプが使用されます。

DEFAULT
明示的にサブタイプを指定しなかった場合、 すべての新規文字列にターゲット・システムが定義した省略時サブタイプが使用されます。

MIXED
明示的にサブタイプを指定しなかった場合、 すべての新規文字列に FOR MIXED DATA SQL 文字サブタイプが使用されます。

SBCS
明示的にサブタイプを指定しなかった場合、 すべての新規文字列に FOR SBCS DATA SQL 文字サブタイプが使用されます。

CNULREQD
このオプションは DRDA でサポートされていない langlevel プリコンパイル・オプションと関連します。 これは、C または C++ アプリケーションで作成されたバインド・ファイルの場合のみ有効です。 この DRDA バインド・オプションは、DB2 ではサポートされていません。

NO
C ストリング・ホスト変数中の NULL 終止符に関して、 langlevel SAA1 プリコンパイル・オプションに基づいてアプリケーションがコード化された場合です。

YES
C ストリング・ホスト変数中の NULL 終止符に関して、 langlevel MIA プリコンパイル・オプションに基づいてアプリケーションがコード化された場合です。

COLLECTION schema-name
パッケージ用の 30 文字の収集識別子を指定します。 これを指定しなかった場合、パッケージを処理する際には、 ユーザーの許可識別子が使用されます。

CONNECT

1
CONNECT ステートメントをタイプ 1 の CONNECT として処理するよう指定します。

2
CONNECT ステートメントをタイプ 2 の CONNECT として処理するよう指定します。

DATETIME
使用する日時形式を指定します。 日時形式の詳細については、SQL 解説書 を参照してください。

DEF
データベースの国別コードと対応する日時形式を使用します。

EUR
IBM 欧州規格の日時形式を使用します。

ISO
国際標準化機構規格の日時形式を使用します。

JIS
日本工業規格の日時形式を使用します。

LOC
データベースの国別コードと対応する地域別日時形式を使用します。

USA
IBM 米国規格の日時形式を使用します。

DEC
10 進算術演算に使用する最大精度を指定します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

15
10 進算術演算に 15 桁精度が使用されます。

31
10 進算術演算に 31 桁精度が使用されます。

DECDEL
10 進数および浮動小数点リテラル中で 10 進小数点標識としてピリオド (.) またはコンマ (,) のどちらかを指定します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

COMMA
10 進小数点標識としてコンマ (,) を使用します。

PERIOD
10 進小数点標識としてピリオド (.) を使用します。

DEFERRED_PREPARE
DB2 共通サーバー・データベースまたは DRDA データベースにアクセスする際のパフォーマンス機能を強化します。 このオプションは、SQL PREPARE ステートメントを、 それに関連した OPEN、 DESCRIBE、 または EXECUTE ステートメント・フローと結合して、 プロセス間またはネットワーク・フローを最小にします。

NO
このコマンドが発行されると同時に PREPARE ステートメントが実行されます。

YES
PREPARE ステートメントの実行は、 対応する OPEN、 DESCRIBE、 または EXECUTE オープンが発行されるまで据え置かれます。

SQLDA を即時に戻す必要がある INTO 文節を使用している場合、 PREPARE ステートメントは据え置かれません。 しかし、パラメーター・マーカーを使用しないカーソルに対して PREPARE INTO ステートメントが発行される場合、 その処理は PREPARE の実行時にカーソルを事前 OPEN することによって最適化されます。

ALL
PREPARE INTO ステートメントも据え置かれること以外は、YES と同じです。 PREPARE ステートメントで SQLDA を戻すために INTO 文節を使用している場合、 OPEN、 DESCRIBE、または EXECUTE ステートメントが発行されて戻されるまで、 アプリケーションでこの SQLDA の内容を参照してはなりません。

DEGREE
SMP システムで静的 SQL ステートメントを実行するための並列処理の程度を指定します。 このオプションは、CREATE INDEX 並列処理には影響を与えません。

1
ステートメントの実行に並列処理を使用しません。

degree-of-parallelism
ステートメントを実行する際の並列処理の程度を指定します。 値の範囲は 2 〜 32 767 です。

ANY
ステートメントの実行時にデータベース・マネージャーで判別した程度で並列処理を行うよう指定します。

DISCONNECT

AUTOMATIC
コミット時にすべてのデータベース接続を切断するよう指定します。

CONDITIONAL
RELEASE をマークしたか、 またはオープン状態の WITH HOLD カーソルをもたないデータベース接続を、 コミット時に切断するよう指定します。

EXPLICIT
RELEASE ステートメントで明示的に解放をマークしたデータベース接続だけを、 コミット時に切断するよう指定します。

DYNAMICRULES
許可 ID に使用される値の初期設定、および未修飾オブジェクト参照の暗黙的な修飾の、 実行時の動的 SQL に適用される規則を定義します。

RUN
パッケージを実行するユーザーの許可 ID が使用されるように指定します。 これが省略時値です。

BIND
許可および修飾の静的 SQL に適用されるすべての規則が、 実行時に使用されるように指定します。 つまり、パッケージ所有者の許可 ID が動的 SQL の権限検査に使用され、 省略時のパッケージ修飾子が動的 SQL ステートメント内の未修飾オブジェクト参照の暗黙的な修飾に使用されます。

このオプションを指定してパッケージをバインドする場合、 パッケージのバインダーはパッケージのユーザーが受け取るべきでない許可を持つことはできません。 動的 SQL ステートメントがパッケージ所有者の許可 ID を使用するためです。 次の動的な準備済み SQL ステートメントは、 このオプションを指定してバインドされているパッケージ内では使用できません。 GRANT、REVOKE、ALTER、CREATE、DROP、COMMENT ON、RENAME、SET CONSTRAINTS、 および SET EVENT MONITOR STATE です。

DEFINE
UDF またはストアード・プロシージャー内にある動的 SQL ステートメントの実行に使用する許可識別子が、 UDF またはストアード・プロシージャーの定義者であるということを指示します。 このオプションは、DB2 ではサポートされません。

INVOKE
UDF またはストアード・プロシージャー内にある動的 SQL ステートメントの実行に使用する許可識別子が、 UDF またはストアード・プロシージャーの呼び出し元であるということを指示します。 このオプションは、DB2 ではサポートされません。

EXPLAIN
各 SQL ステートメント用に選択したアクセス・プランに関する Explain 表の情報を、 パッケージに保管します。 DRDA では、このオプションの ALL 値がサポートされていません。

NO
Explain 情報はキャプチャーされません。

YES
Explain 表には、静的ステートメントの場合は prep/bind 時間 で、 増分バインド・ステートメントの場合はランタイムで、 選択されたアクセス・プランについての情報が取り込まれます。

ALL
適格な静的 SQL ステートメントの Explain 情報が、 prep/bind 時間で各 Explain 表に入れられます。 適格な増分バインド SQL ステートメントの Explain 情報が、 ランタイムで各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN SNAPSHOT レジスターが NO に設定されていても、 Explain 情報は実行時に適格な動的 SQL ステートメント用に集められます。 特殊レジスターの詳細については、SQL 解説書 を参照してください。

注:DRDA では、EXPLAIN のこの値 (ALL) はサポートされていません。

EXPLSNAP
Explain 表に Explain スナップショットを保管します。 この DB2 プリコンパイル / バインド・オプションは、DRDA ではサポートされていません。

NO
Explain スナップショットはキャプチャーされません。

YES
Explain 表には、静的ステートメントの場合は prep/bind 時間 で、 増分バインド・ステートメントの場合はランタイムで、 適格な各静的 SQL ステートメントの Explain スナップショットが、Explain 表内に入れられます。

ALL
適格な各静的 SQL ステートメントの Explain スナップショットが、 prep/bind 時間 で Explain 表内に入れられます。 適格な増分バインド SQL ステートメントの Explain スナップショット情報が、 ランタイムで各 Explain 表に入れられます。 さらに、CURRENT EXPLAIN SNAPSHOT レジスターが NO に設定されていても、 Explain スナップショット情報は実行時に適格な動的 SQL ステートメント用に集められます。 特殊レジスターの詳細については、SQL 解説書 を参照してください。

FEDERATED
パッケージ内の静的 SQL ステートメントが、 通称または統合視点を参照するかどうかを指定します。 このオプションを指定しており、通称または統合視点が参照されない場合、 エラーが戻され、パッケージは作成されません。 このオプションが指定されず、 通称または統合視点がパッケージ内の静的ステートメントによって参照される場合、 エラーが戻され、パッケージは作成されません。

NO
ユーティリティーは DB2 ユニバーサル・データベースに接続します。 これが省略時値です。

YES
ユーティリティーは DB2 統合システムにアクセスします。

FUNCPATH
静的 SQL で、ユーザー定義の個別タイプおよび機能を解析する際に使用する機能パスを指定します。 このオプションを指定しなかった場合、 省略時の機能パスは "SYSIBM"、"SYSFUN"、または USER になります。 この DB2 プリコンパイル / バインド・オプションは、DRDA ではサポートされていません。

schema-name
SQL 識別子 (通常または区切り)。 これは、アプリケーション・サーバーに存在するスキーマを識別します。 スキーマが存在する場合、プリコンパイル時やバインド時に妥当性検査は行われません。 同一スキーマは、機能パス内に一度しか存在できません。 指定できるスキーマ数は、処理結果の機能パスの長さによって限定され、 254 バイトを超えることはできません。 スキーマ SYSIBM は、明示的に指定する必要がありません。 機能パス内に含まれていなければ、最初のスキーマに暗黙的に想定されます。 詳細については、SQL 解説書 を参照してください。

INSERT
DB2 エンタープライズ拡張エディション・サーバーへプリコンパイルまたはバインドされているプログラムが、 パフォーマンス向上のために挿入データをバッファリングすることを要求できるようにします。

BUF
アプリケーションからの挿入データをバッファリングすることを指定します。

DEF
アプリケーションからの挿入データをバッファリングしないことを指定します。

GENERIC string
宛先 DRDA データベースに新規バインド・オプションを渡す手段を提供します。 宛先データベースで定義されていても、 ローカル・コマンドで認識されない新規バインド・オプションをサポートします。 BINDまたは PRECOMPILE PROGRAM定義されている バインド・オプションを渡すようにするには、このオプションを使用しないでください。 このオプションは、動的 SQL のパフォーマンスをかなり向上させることができます。 構文は次のとおりです。

   generic "option1 value1 option2 value2 ..."

各オプションと値は、1 つまたは複数のブランク・スペースで区切らなければなりません。 たとえば、宛先 DRDA データベースが DB2 MVS バージョン 5 の場合、次のようにします。

   generic "keepdynamic yes"

こうして、新規 keepdynamic YES オプションは PRECOMPILE PROGRAM または BIND コマンドでローカルに定義されてはいませんが、バインドできます。

ストリングの最大長は 1023 バイトです。 この DRDA バインド・オプションは、現在 DB2 MVS バージョン 5 のみでサポートされています。 DB2 ではサポートされていません。

ISOLATION
このパッケージにバインドされるプログラムを、 他の実行プログラムの影響からどの程度分離できるかを指定します。 分離レベルの詳細については、SQL 解説書 を参照してください。

CS
分離レベルとしてカーソル固定を指定します。

NC
コミットしません。 コミット制御が使用されないということを指定します。 なお、DB2 はこの分離レベルをサポートしません。

RR
分離レベルとして反復可能読み取りを指定します。

RS
分離レベルとして読み取り固定を指定します。 読み取り固定は、パッケージ内での SQL ステートメントの実行を、 他のアプリケーションが読み取りおよび変更を行った行に対する処理から分離させます。

UR
分離レベルとして非コミット読み取りを指定します。

LANGLEVEL
アプリケーション内の静的および動的 SQL の構文および意味に適用される SQL 規則を指定します。 このオプションは、DB2 コネクトではサポートされていません。 このオプションについては、アプリケーション開発の手引き を参照してください。

MIA
以下のように ISO/ANS SQL92 規則を選択します。
  • エラー SQLCODE または SQLSTATE の検査をサポートするには、 アプリケーション・コードの中で SQLCA が宣言されていなければなりません。
  • C のヌル文字で終了するストリングにはブランクが埋め込まれ、 切り捨てが実行された場合でも常にヌル終了文字が含められます。
  • FOR UPDATE 文節は、定位置 UPDATE で更新されるすべての列において任意指定です。
  • UPDATE または DELETE ステートメントの対象となる表の列が、 検索条件の中や代入文節の右辺で参照されているなら、 検索 UPDATE または DELETE に、対象となる表に対する SELECT 特権が必要です。
  • 索引を使って解決可能な列関数 (たとえば MIN または MAX) は、 ヌルも検査し、ヌルがあったなら警告 SQLSTATE 01003 を戻します。
  • CREATE または ALTER TABLE ステートメントの中に重複した固有制約が含まれているなら、 エラーが戻されます。
  • 特権が何も付与されていない場合、 付与者にそのオブジェクトに対する権限がないなら、 エラーが戻されます (その権限があるなら警告が戻されます)。

SAA1
以下のように共通 IBM DB2 規則を選択します。
  • エラー SQLCODE または SQLSTATE の検査をサポートするには、 アプリケーション・コードの中で SQLCA が宣言されていなければなりません。
  • C のヌル文字で終了するストリング、切り捨てが実行された場合には、 ヌル文字が最後に付けられません。
  • FOR UPDATE 文節は、定位置 UPDATE で更新されるすべての列において必須です。
  • UPDATE または DELETE ステートメントの対象となる表が、 そのステートメントの全選択から参照されるのでなければ、 検索 UPDATE または DELETE に、対象となる表に対する SELECT 特権は不要です。
  • 索引を使って解決可能な列関数 (たとえば MIN または MAX) は、 ヌルを検査せず、警告 SQLSTATE 01003 は戻されません。
  • 警告が戻され、固有制約が重複していても無視されます。
  • 特権が付与されていないなら、エラーが戻されます。

SQL92E
以下のように ISO/ANS SQL92 規則を定義します。
  • SQLCODE または SQLSTATE の検査をサポートするには、 その名前の変数をホスト変数の宣言セクションで宣言できます (どちらも宣言されていないなら、 事前コンパイル中には SQLCODE が指定されているものとされます)。
  • C のヌル文字で終了するストリングにはブランクが埋め込まれ、 切り捨てが実行された場合でも常にヌル終了文字が含められます。
  • FOR UPDATE 文節は、定位置 UPDATE で更新されるすべての列において任意指定です。
  • UPDATE または DELETE ステートメントの対象となる表の列が、 検索条件の中や代入文節の右辺で参照されているなら、 検索 UPDATE または DELETE に、対象となる表に対する SELECT 特権が必要です。
  • 索引を使って解決可能な列関数 (たとえば MIN または MAX) は、 ヌルも検査し、ヌルがあったなら警告 SQLSTATE 01003 を戻します。
  • CREATE または ALTER TABLE ステートメントの中に重複した固有制約が含まれているなら、 エラーが戻されます。
  • 特権が何も付与されていない場合、 付与者にそのオブジェクトに対する権限がないなら、 エラーが戻されます (その権限があるなら警告が戻されます)。

LEVEL consistency-token
一貫性トークンを使用するモジュールのレベルを定義します。 一貫性トークンとは、8 文字までの長さの任意の英数字値のことです。 RDB パッケージの一貫性トークンは、 リクエスターのアプリケーションと関係データベース・パッケージが同期化されているかどうかを検証します。 この DRDA プリコンパイル・オプションは、DB2 ではサポートされていません。
注:このオプションは、通常は使用しないでください。

LONGERROR
長いホスト変数宣言をエラーとして扱うかどうかを示します。 移行性のために、sqlint32 は、 プリコンパイル C および C++ コードで INTEGER 列の宣言として使用できます。

NO
長いホスト変数宣言の使用に対してエラーを生成しません。 これが 32 ビット・システムと 64 ビット NT システムの省略時値です。 それらのシステムでは、長いホスト変数を INTEGER 列の宣言として使用できます。 このオプションを 64 ビット UNIX プラットフォームで使用すると、 長いホスト変数を、BIGINT 列の宣言として使用することができます。

YES
長いホスト変数宣言の使用に対してエラーを生成します。 これが 64 ビット UNIX システムの省略時値です。

MESSAGES message-file
警告メッセージ、エラー・メッセージ、 および完了状況メッセージの宛先を指定します。 メッセージ・ファイルは、バインドが正常であるかどうかによって作成されます。 メッセージ・ファイル名を指定しなかった場合、メッセージは標準出力に書き込まれます。 ファイルへの完全パスを指定しなかった場合は、現行ディレクトリーが使用されます。 なお、既存ファイルの名前を指定すると、そのファイルの内容は上書きされます。

NOLINEMACRO
出力 .c ファイルでの # 行マクロの生成を抑制します。 これは、プロファイル、相互参照ユーティリティー、 およびデバッガーのようなソース行情報を必要とする作成ツールでファイルを使用する場合に役に立ちます。

注:このプリコンパイル・オプションは、 C/C++ プログラム言語でのみ使用します。

OPTLEVEL
SQL ステートメントの中でホスト変数が使用されている場合に、 内部 SQLDA の初期化を C/C++ プリコンパイラーで最適化するかどうかを指示します。 そのように最適化すれば、 密なループ内で単一の SQL ステートメント (FETCH など) を使う場合のパフォーマンスが向上します。

0
SQLDA の初期化を最適化しないようプリコンパイラーに指示します。

1
SQLDA の初期化を最適化するようプリコンパイラーに指示します。 アプリケーションで以下のものを使っている場合は、この値を指定しないでください。
  • 次の例に示すようなポインター・ホスト変数

    exec sql begin declare section;
    char (*name)[20];
    short *id;
    exec sql end declare section;
    
  • 直接 SQL ステートメントに指定される C++ データ・メンバー

詳しくは、アプリケーション開発の手引き を参照してください。

OUTPUT filename
コンパイラーが生成した修正済みソース・ファイルの省略時名をオーバーライドします。 この名前にはパスを含めることもできます。

OWNER authorization-id
パッケージ所有者の 30 文字の許可識別子を指定します。 その所有者には、パッケージに含まれる SQL ステートメントを実行するための特権が必要です。 SYSADM または DBADM 許可を持つユーザーのみが、ユーザー ID 以外の許可識別子を指定できます。 省略時値は、プリコンパイル / バインド処理の 1 次許可 ID です。 SYSIBM、SYSCAT、および SYSSTAT はこのオプションには無効な値です。

PACKAGE
パッケージを作成します。 packagebindfile、 または syntax のどれも指定されていない場合は、 省略時で、データベースの中にパッケージが作成されます。

USING package-name
プリコンパイラーが生成するパッケージの名前。 名前を入力しないなら、アプリケーション・プログラムのソース・ファイルの名前 (拡張子を取り去って大文字に変換したもの) が使われます。 最大長は 8 文字です。

PREPROCESSOR "preprocessor-command"

組み込み SQL ステートメントを処理する前に、 プリコンパイラーが実行できるプリプロセッサー・コマンドを指定します。 プリプロセッサー・コマンド・ストリング (最大 1024 バイト) は、 二重引用符または単一引用符で囲む必要があります。

このオプションは、宣言セクションでマクロを使用できるようにします。 有効なプリプロセッサー・コマンドとは、コマンド行から発行でき、 ソース・ファイルを指定しなくてもプリプロセッサーを呼び出せるコマンドです。 たとえば、次のように指定します。

   xlc -P -DMYMACRO=0

QUALIFIER qualifier-name
パッケージに含まれる未修飾オブジェクトの 30 文字の暗黙修飾子を指定します。 owner が明示的に指定されていれば、 その所有者の許可 ID が省略時 ID になります。

QUERYOPT optimization-level
パッケージに含まれるすべての静的 SQL ステートメントに必要な最適化レベルを指示します。 省略時値は 5 です。 使用可能な最適化レベルの範囲の詳細については、 SQL 解説書 の SET CURRENT QUERY OPTIMIZATION ステートメントを参照してください。 この DB2 プリコンパイル / バインド・オプションは、DRDA ではサポートされていません。

RELEASE
リソースを、各 COMMIT ポイントで解放するか、 アプリケーションの終了時に解放するかどうかを指示します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。

COMMIT
各コミット点でリソースを解放します。 これは、動的 SQL ステートメントに使用されます。

DEALLOCATE
アプリケーションの終了時にだけリソースを解放します。

SQLCA
FORTRAN アプリケーションでのみ使用します。 その他の言語で使用しても、このオプションは無視されます。

NONE
修正されたソース・コードは SAA 定義と整合性がないことを指定します。

SAA
修正されたソース・コードは SAA 定義と整合性があることを指定します。

SQLERROR
エラーを検出した場合に、 パッケージまたはバインド・ファイルを作成するかどうかを指示します。

CHECK
ターゲット・システムがすべての構文を実行し、 バインドしている SQL ステートメントの意味を調べるということを指定します。 この処理の一部としてパッケージが作成されることはありません。 バインド中に、名前とバージョンが同じ既存パッケージを検出した場合、 その既存パッケージはドロップも置換 (ACTION REPLACE を指定した場合) もされません。

CONTINUE
SQL ステートメントのバインド時にエラーが発生しても、パッケージを作成します。 許可または存在などの理由でバインドに失敗したこれらのステートメントは、 VALIDATE RUN も指定されている場合は、実行時に増分でバインドすることができます。 ランタイムでこれらのステートメントを実行しようとすると、 エラー (SQLCODE -525, SQLSTATE 51015) が生成されます。

NOPACKAGE
エラーを検出した場合、パッケージもバインド・ファイルも作成しません。

SQLFLAG
このオプションに指定された SQL 言語構文との相違点を識別して報告します。

バインド・ファイルまたはパッケージが作成されるのは、 sqlflag オプションに加えて bindfile または package オプションが指定されている場合だけです。

ローカル構文検査が実行されるのは、 次に示すオプションのうちの 1 つが指定された場合だけです。

sqlflag が指定されていない場合、標識機能は呼び出されず、 バインド・ファイルやパッケージが影響を受けることはありません。

SQL92E SYNTAX
SQL ステートメントは、データベース・カタログにアクセスするのに必要な構文規則を除いて、 ANSI または ISO SQL92 のエントリー・レベル SQL 言語の書式および構文と比較して調べられます。 相違があれば、プリコンパイラー・リストに報告されます。

MVSDB2V23 SYNTAX
SQL ステートメントは、MVS DB2 バージョン 2.3 SQL 言語構文と比較して調べられます。 構文の相違があれば、プリコンパイラー・リストに報告されます。

MVSDB2V31 SYNTAX
SQL ステートメントは、MVS DB2 バージョン 3.1 SQL 言語構文と比較して調べられます。 構文の相違があれば、プリコンパイラー・リストに報告されます。

MVSDB2V41 SYNTAX
SQL ステートメントは、MVS DB2 バージョン 4.1 SQL 言語構文と比較して調べられます。 構文の相違があれば、プリコンパイラー・リストに報告されます。

SQLRULES
下記のことを指定します。

DB2
  • SQL CONNECT ステートメントで、現在の接続と、確立されている (休止 状態の) 別の接続との間で切り換えることができるようにします。
  • ユーザーまたはアプリケーションは、 LOB 列の形式を最初のフェッチ要求においてしか指定できません。

STD
  • SQL CONNECT ステートメントでは、 新しい 接続を確立することしかできないようにします。 休止接続へ切り替えるには、SQL SET CONNECTION ステートメントを使います。
  • ユーザーまたはアプリケーションは、 LOB 列の形式を各フェッチ要求ごとに指定できます。

SQLWARN
動的 SQL ステートメントの完了時 (PREPARE または EXECUTE IMMEDIATE を通して)、 または記述処理時 (PREPARE...INTO または DESCRIBE を通して) に警告を戻すかどうかを指示します。 この DB2 プリコンパイル / バインド・オプションは、DRDA ではサポートされていません。

NO
SQL コンパイラーから警告を戻しません。

YES
SQL コンパイラーから警告を戻します。

注:SQLCODE +238 は例外です。 これは、SQLWARN オプションの値が何であろうと戻されます。

STRDEL
SQL ステートメントで使用するストリング区切り文字として、 アポストロフィ (') または二重引用符 (") のどちらを使用するか指定します。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。 このオプションを指定しないと、DRDA サーバーは、システムが定義した省略時値を使用します。

APOSTROPHE
ストリング区切り文字として、アポストロフィ (') を使用します。

QUOTE
ストリング区切り文字として、二重引用符 (") を使用します。

SYNCPOINT
複数のデータベース接続にまたがってコミットまたはロールバックを調整する仕方を指定します。

NONE
2 フェーズ・コミットを実行するのにトランザクション管理機能 (TM) を使用しないことを指定し、 単一更新機構、多重読み取り機構を適用しません。 コミットは、関連する各データベースに送られます。 コミットが失敗したときの回復は、アプリケーションが行います。

ONEPHASE
2 フェーズ・コミットを実行するのに TM を使用しないことを指定します。 複数のデータベース・トランザクションの各データベースが行う作業をコミットするときは、 1 フェーズ・コミットが使用されます。

TWOPHASE
このプロトコルをサポートする複数のデータベースにまたがって 2 フェーズ・コミットを調整するのに TM が必要であることを指定します。

SYNTAX
プリコンパイル時に、パッケージまたはバインド・ファイルの作成を抑制します。 このオプションを使用すれば、 既存のパッケージまたはバインド・ファイルを修正したり変更したりしないで、 ソース・ファイルの妥当性を検査できます。 Syntaxsqlerror check の同義語です。

syntaxpackage オプションと一緒に使うと、package は無視されます。

TARGET
現行のプラットフォームでサポートされているコンパイラーの 1 つに合わせて調整した修正コードを生成するように、プリコンパイラーに指示します。

IBMCOB
AIX では、IBM COBOL Set (AIX 版) のコンパイラーのためのコードが生成されます。 OS/2 では、IBM VisualAge for COBOL コンパイラー用のコードが生成されます。

MFCOB
Micro Focus COBOL コンパイラー用のコードが生成されます。 OS/2 では、32 ビット Micro Focus COBOL コンパイラー用です。 すべての UNIX プラットフォームおよび Windows NT の COBOL プリコンパイラーにおいて、 target 値が指定されないなら、この値が省略時値になります。

MFCOB16
16 ビット Micro Focus COBOL コンパイラー用のコードが生成されます。 この値は OS/2 でのみ有効であり、 COBOL プリコンパイラーで target 値を指定しない場合の省略時値です。

ANSI_COBOL
ANS X3.23-1985 標準規格と互換性のあるコードが生成されます。

C
現行プラットフォーム上の DB2 によりサポートされる C コンパイラーと互換性のあるコードが生成されます。

CPLUSPLUS
現行プラットフォーム上の DB2 によりサポートされる C++ コンパイラーと互換性のあるコードが生成されます。

BORLAND_C
Borland C/C++ コンパイラー用の C コードが生成されます。 この値は、OS/2 でのみ有効です。

BORLAND_CPLUSPLUS
Borland C/C++ コンパイラー用の C++ コードが生成されます。 この値は、OS/2 でのみ有効です。

FORTRAN
現行プラットフォーム上の DB2 によりサポートされる FORTRAN コンパイラーと互換性のあるコードが生成されます。

TEXT label
パッケージの記述。 最大長は 255 文字です。 また、省略時値はブランクです。 なお、DB2 はこの DRDA プリコンパイル / バインド・オプションをサポートしません。

TRANSFORM GROUP
静的 SQL ステートメントが、 ユーザー定義の構造型の値をホスト・プログラムと交換するために使用する、 変換グループ名を指定します。 この変換グループは、動的 SQL ステートメントには使用されません。 また、パラメーターの交換や外部関数またはメソッドの結果にも使用されません。

groupname
SQL 識別子。長さは最大で 18 文字です。 グループ名には、修飾子接頭部を含めることはできません。 また、接頭部 SYS はデータベースで使用するために予約されているので、 その接頭部は使用できません。 ホスト変数とやりとりする静的 SQL ステートメントでは、 構造型の値の交換に使用する変換グループの名前は以下のようになります。
  • TRANSFORM GROUP バインド・オプション内のグループ名 (もしあれば)
  • TRANSFORM GROUP 準備オプション内のグループ名。 最初の事前コンパイル時に指定したとおりのもの (もしあれば)
  • DB2_PROGRAM グループ。 グループ名が DB2_PROGRAM の、特定のタイプに対する変換がある場合。
  • 上記のいずれの条件もない場合には、変換グループは使用されません。

静的 SQL ステートメントのバインド時には、 以下のエラーが発生する可能性があります。

  • SQLCODE yyy, SQLSTATE xxxxx: 変換が必要ですが、静的変換グループが選択されていません。
  • SQLCODE yyy, SQLSTATE xxxxx: 選択された変換グループには、 交換するデータ・タイプに必要な変換が含まれていません (入力変数用の TO SQL、出力変数用の FROM SQL)。
  • SQLCODE yyy, SQLSTATE xxxxx: FROM SQL 変換の結果タイプは、 出力変数のタイプと互換性がありません。 または、TO SQL 変換のパラメーター・タイプは、入力変数のタイプと互換性がありません。

VALIDATE
データベース・マネージャーが、許可エラーとエラー未検出のオブジェクトをいつ検査するかを判別します。 この妥当性検査には、パッケージ所有者の許可 ID が使用されます。

BIND
プリコンパイル / バインド時に妥当性検査が実行されます。 オブジェクトが 1 つもない場合、または権限がまったく保持されていない場合、 エラー・メッセージが作成されます。 SQLERROR CONTINUE を指定した場合、 エラー・メッセージにかかわらずパッケージ / バインド・ファイルは作成されますが、 エラーのあるステートメントは実行できません。

RUN
バインド時に妥当性検査が行われます。 すべてのオブジェクトが存在し、全権限が保持されていれば、 それ以上実行しても検査は行われません。

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

VERSION version-id
パッケージのバージョン識別子を定義します。 バージョン識別子は、任意の英数字値、$、#、@、_、-、または . で、 長さは 254 バイト以下です。 この DRDA プリコンパイル・オプションは、DB2 ではサポートされていません。

WCHARTYPE
wchartype の使用と適用についての詳細および制約事項は、 アプリケーション開発の手引き を参照してください。

CONVERT
wchar_t 基本タイプを使って宣言されたホスト変数には、 wchar_t 形式のデータが入れられるものとして扱われます。 この形式は、データベースに格納されるグラフィック・データの形式 (DBCS 形式) と直接に互換性はないので、 wchar_t ホスト変数の入力データは、ANSI C 関数 wcstombs() を使って DBCS 形式に暗黙のうちに変換されます。 同じように出力 DBCS データは、ホスト変数を保管する前に、 mbstowcs() を使用して wchar_t 形式に暗黙のうちに変換されます。

NOCONVERT
wchar_t 基本タイプを使って宣言されたホスト変数には、 DBCS 形式のデータが入れられるものとして扱われます。 これは、データベースの中でグラフィック・データ用に使われる形式ですが、 C 言語で採用されている固有の wchar_t 形式とは違うものです。 noconvert を使用する場合、 グラフィック・データはアプリケーションとデータベースの間で変換されないことになり、 それによって効率が改善されます。 しかし、アプリケーション側では、 データベース・マネージャーに wchar_t 形式のデータが渡されることがないようにしなければなりません。 このオプションを使用する場合は、 wchar_t ホスト変数を C ワイド文字列関数で処理しないようにし、 ワイド文字リテラル (L-literals) で初期化しないようにしなければなりません。

使用上の注意

修正されたソース・ファイルが作成されます。 それには SQL ステートメントに相当するホスト言語ステートメントが入っています。 パッケージは、省略時では、接続が確立されているデータベース内に作成されます。 パッケージの名前は、ファイル名と同じ (拡張子を取り去って大文字に変換したもの) であり、 最大 8 文字までです。

データベースへの接続が終わると、 開始されているトランザクションの下で PREP が実行されます。 次に PREP は COMMIT または ROLLBACK を実行し、 現行トランザクションを終了して別のトランザクションを開始します。

すでに存在していないスキーマ名を指定してパッケージを作成すると、 そのスキーマが暗黙のうちに作成されます。 スキーマの所有者は SYSIBM になります。 スキーマに対する CREATEIN 特権が PUBLIC に付与されます。

プリコンパイル時には、パッケージが作成されて explsnap が指定されているのでない限り、 Explain スナップショットは取られません。 スナップショットは、パッケージを作成するユーザーの Explain 表に入れられます。 同じように、Explain 表情報が取得されるのは、 explain が指定されていて、パッケージが作成される場合だけです。

致命的エラーが発生するか、100 以上のエラーが発生すると、プリコンパイルは停止します。 致命的エラーが発生すると、ユーティリティーはプリコンパイルを停止し、 すべてのファイルをクローズしてからパッケージを廃棄します。

パッケージが dynamicrules バインドでバインドされる場合、 バインド・オプション owner の暗黙または明示的な値は、 動的 SQL ステートメントの許可検査に使用され、 バインド・オプション qualifier の暗黙または明示的な値は、 動的 SQL ステートメント内の未修飾オブジェクトの暗黙修飾子として使用されます。 複数のパッケージが単一の接続中に参照される場合、 特定のパッケージにより準備された動的 SQL は、 そのパッケージへのバインド・オプションにしたがって動作します。 特殊レジスター CURRENT SCHEMA の値は、 dynamicrules バインドを持つパッケージ結合にある修飾子には影響しません。

クライアント / サーバー環境で、PRECOMPILE コマンドがバージョン 6 のサーバーに接続された バージョン 6 より前のクライアントに発行される場合、 エラーを示す SQL0020W がクライアントに戻される場合があります。 この状態は、コマンドが DYNAMICRULES または OWNER パラメーターの一方または両方を使用する場合に起きます。 エラー・メッセージが表示されても、それらのパラメーターは引き続き有効であり、使用されます。 SQL0020W メッセージに表示される他のパラメーターは正しくエラーと示され、 メッセージが示すとおりに無視されます。 これらの他のパラメーターには、以下のものが含まれます。 ACTION、 CCSIDG、 CCSIDM、 CCSIDS、 CHARSUB、 CNULREQD、 DEC、 DECDEL、 GENERIC、 RELEASE、 REPLVER、 RETAIN、 STRDEL、 TEXT、 VALIDATE、 VERSION、および値 CONTINUE が指定された SQLERROR。

同じように、バージョン 6 以前のクライアントがバージョン 7 のサーバーに接続されると、 DYNAMICRULES、OWNER、または VALIDATE パラメーターのいずれかを組み合わせて使用すると、 SQL0020W エラーが示されます。 エラー・メッセージが表示されても、それらのパラメーターは引き続き有効であり、使用されます。 SQL0020W メッセージに表示される他のパラメーターは正しくエラーと示され、 メッセージが示すとおりに無視されます。 これらの他のパラメーターには、以下のものが含まれます。 ACTION、 CCSIDG、 CCSIDM、 CCSIDS、 CHARSUB、 CNULREQD、 DEC、 DECDEL、 GENERIC、 RELEASE、 REPLVER、 RETAIN、 STRDEL、 TEXT、 VERSION、 および値 CONTINUE が指定された SQLERROR。
注:バージョン 7 またはそれ以降のサーバーに接続されており、 VALIDATE RUN が指定されており、 エラーを生成する原因となるがこの BIND オプションによってバイパスされるステートメントがある間は、 バージョン 6 以前のクライアントはバインド・ファイルを生成しません。 ただし、パッケージは作成されます。

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

以下も参照

BIND


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]