コマンド解説書
組み込み SQL ステートメントの含まれているアプリケーション・プログラム・ソース・ファイルを処理します。
SQL ステートメントに対するホスト言語呼び出しを含む変更後のソース・ファイルが作成されます。
また、省略時値として、データベース内にパッケージが作成されます。
効力範囲
このコマンドは、db2nodes.cfg 中のどのノードからでも発行できます。
実行すると、カタログ・ノードのデータベース・カタログが更新されます。
その影響はすべてのノードから見えます。
許可
以下のどれかが必要です。
- sysadm または dbadm の権限
- パッケージが存在しない場合は、BINDADD 特権および以下のどちらかが必要です。
- パッケージのスキーマ名が存在しない場合は、データベースに対する IMPLICIT_SCHEMA 権限
- パッケージのスキーマ名が存在する場合は、スキーマに対する CREATEIN 特権
- パッケージが存在する場合は、スキーマに対する ALTERIN 特権
- パッケージに対する BIND 特権 (パッケージが存在する場合)
ユーザーには、アプリケーション内の静的 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----+--'
注:
- NO は、32 ビット・システムと 64 ビット NT システムの省略時値です。
それらのシステムでは、長いホスト変数を INTEGER 列の宣言として使用できます。
YES は、64 ビット UNIX システムの省略時値です。
- 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----+--'
注:
- DATETIME DEF オプションは DRDA ではサポートされておらず、
DB2 コネクトを経て ISO にマップされます。
- DEGREE オプションは DRDA レベル 2 のアプリケーション・サーバーでしかサポートされていません。
- NO は、32 ビット・システムと 64 ビット NT システムの省略時値です。
それらのシステムでは、長いホスト変数を INTEGER 列の宣言として使用できます。
YES は、64 ビット UNIX システムの省略時値です。
コマンド・パラメーター
- filename
- プリコンパイルするソース・ファイルを指定します。
拡張子の指定は、以下のようになります。
- C アプリケーションの場合、.sqc を指定します
(.c ファイルが生成されます)。
- C++ アプリケーションの場合、
.sqx (OS/2 または Windows オペレーティング・システム)、
または .sqC (UNIX 系システム) を指定します
(OS/2 または Windows オペレーティング・システムの場合は .cxx ファイル、
UNIX 系システムの場合は .C ファイルが作成されます)。
- COBOL アプリケーションの場合、.sqb を指定します
(.cbl ファイルが生成されます)。
- FORTRAN アプリケーションの場合、.sqf を指定します
(OS/2 または Windows オペレーティング・システムの場合は .for ファイル、
UNIX 系システムの場合は .f ファイルが生成されます)。
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 の初期化を最適化するようプリコンパイラーに指示します。
アプリケーションで以下のものを使っている場合は、この値を指定しないでください。
詳しくは、アプリケーション開発の手引き を参照してください。
- OUTPUT
filename
- コンパイラーが生成した修正済みソース・ファイルの省略時名をオーバーライドします。
この名前にはパスを含めることもできます。
- OWNER
authorization-id
- パッケージ所有者の 30 文字の許可識別子を指定します。
その所有者には、パッケージに含まれる SQL ステートメントを実行するための特権が必要です。
SYSADM または DBADM 許可を持つユーザーのみが、ユーザー ID 以外の許可識別子を指定できます。
省略時値は、プリコンパイル / バインド処理の 1 次許可 ID です。
SYSIBM、SYSCAT、および SYSSTAT はこのオプションには無効な値です。
- PACKAGE
- パッケージを作成します。
package、bindfile、
または 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 つが指定された場合だけです。
- bindfile
- package
- sqlerror check
- syntax
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
- 下記のことを指定します。
- タイプ 2 の CONNECT を DB2 規則に従って処理するか、
それとも ISO/ANS SQL92 の標準 (STD) の規則に従って処理するか。
- ユーザーまたはアプリケーションが LOB 応答セット列の形式をどのように指定するか。
- 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
- プリコンパイル時に、パッケージまたはバインド・ファイルの作成を抑制します。
このオプションを使用すれば、
既存のパッケージまたはバインド・ファイルを修正したり変更したりしないで、
ソース・ファイルの妥当性を検査できます。
Syntax は sqlerror check の同義語です。
syntax を package オプションと一緒に使うと、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
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]