Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

SQL プリプロセッサー・オプション

SQL プリプロセッサー・オプション を指定する場合、オプションのリストは引用符 で囲む必要があります (単一引用符か二重引用符を使用し、同じ種類の引用符で囲む必要があります)。 例えば、DATE(ISO) オプションを指定する場合、PP(SQL(’DATE(ISO)’)) と指定する必要があります。

次の構文図は、SQL プリプロセッサーによってサポートされるオプション をすべて示しています。

構文図を読む構文図をスキップする                             .-APOSTSQL-.
>>---PP----(----SQL----(--'--+----------+----------------------->
                             '-QUOTESQL-'
 
                                .-CCSID0---.
>--+-------------------------+--+----------+-------------------->
   |            .-TSO---.    |  '-NOCCSID0-'
   '-ATTACH--(--+-------+--)-'
                +-CAF---+
                '-RRSAF-'
 
>--+------------------+--+-----------------------+-------------->
   |          .-2-.   |  '-DATE--(--+-------+--)-'
   '-CONNECT(-+---+-)-'             +-ISO---+
              '-1-'                 +-USA---+
                                    +-EUR---+
                                    +-JIS---+
                                    '-LOCAL-'
 
>--+-------------------+--+-----------------------+------------->
   |         .-15-.    |  |           .-S390-.    |
   '-DEC--(--+----+--)-'  '-FLOAT--(--+------+--)-'
             '-31-'                   '-IEEE-'
 
   .-NOINCONLY-.  .-ONEPASS-.
>--+-----------+--+---------+--+------------------+------------->
   '-INCONLY---'  '-TWOPASS-'  '-LEVEL-+--------+-'
                                       '-(aaaa)-'
 
                                      .-OPTIONS---.
>--+--------------------+--+-------+--+-----------+------------->
   |         .-DB2-.    |  '-NOFOR-'  '-NOOPTIONS-'
   '-LOB--(--+-----+--)-'
             '-PLI-'
 
>--+-----------------------------------------------------+------>
   '-SQLFLAG--(--+----------------------------------+--)-'
                 +-STD-+--------------------------+-+
                 |     '-(ssname-+------------+-)-' |
                 |               '-,qualifier-'     |
                 '-IBM------------------------------'
 
>--+-----------------------+--+-----------------------+--------->
   |            .-NO--.    |  '-TIME--(--+-------+--)-'
   '-STDSQL--(--+-----+--)-'             +-ISO---+
                '-YES-'                  +-USA---+
                                         +-EUR---+
                                         +-JIS---+
                                         '-LOCAL-'
 
>--+--------------------+--+-------------------------+--'--)---->
   |         .-DB2-.    |  '-VERSION--(--+------+--)-'
   '-SQL--(--+-----+--)-'                +-aaaa-+
             '-ALL-'                     '-AUTO-'
 
>--)-----------------------------------------------------------><
 

これらの PL/I SQL プリプロセッサー・オプションに加えて、PP(SQL('options')) コンパイラー・オプションに関係する DB2 コプロセッサー・オプションを渡すこともできます。 DB2 コプロセッサー・オプションの詳細については、「DB2 Universal Database for z/OS アプリケーション・プログラミングおよび SQL ガイド」を参照してください。

この表では、相互排他的なオプションは縦棒 (|) によって分離されています。 また括弧 ([ ]) は、囲まれたオプションが省略可能で あることを示しています。

APOSTSQL
アポストロフィ (') を、ストリング区切り文字として、また、引用符 (") を SQL ステートメント内 の SQL のエスケープ文字として認識します。

DB2 プリコンパイラーを使用した、以前の PL/I プログラムとの 互換性のためには、APOSTSQL を選択しなければなりません。

APOSTSQL と QUOTESQL は相互排他的なオプションです。

デフォルト設定は APOSTSQL です。

ATTACH(TSO|CAF|RRSAF)
アプリケーションが DB2 へのアクセスに使用する接続機能 を指定します。TSO、CAF および RRSAF があります。接続機能をロードする アプリケーションは、ダミーの DSNHLI エントリー・ポイントをコーディングする 代わりに、このオプションを使用して適切な接続機能を指定できます。

デフォルトは ATTACH(TSO) です。

CCSID0
CCSID0 は、CCSID 値がホスト変数に割り当てられないことを指定します。

ご使用のプログラムが FOR BIT DATA 列を BIT データでないデータ・タイプで更新する場合は、CCSID0 を選択する必要があります。 CCSID0 は、ホスト変数が CCSID に関連しないことを DB2 に示して、割り当てを許可します。そうでなければ、BIT データではない CCSID に関連したホスト変数が FOR BIT DATA 列に割り当てられ、DB2 にエラーが発生します。

DB2 プリコンパイラーを使用した、以前の PL/I プログラムとの互換性のためには CCSID0 を選択しなければなりません。

CCSID0 と NOCCSID0 は相互排他的なオプションです。

デフォルト設定は CCSID0 です。

CONNECT(2|1)
タイプ 1 またはタイプ 2 のどちらの CONNECT ステートメント規則 を適用するかを決定します。

デフォルトは CONNECT(2) です。

このオプションの詳細については、「DB2 SQL 解説書」を参照してください。

CONNECT オプションの省略形は CT です。

DATE(ISO|USA|EUR|JIS|LOCAL)
ロケーションのデフォルトとして指定されたフォーマットに関係なく、 日付の出力を常に特定のフォーマットで戻すように指定します。 これらのフォーマットの詳細については、「DB2 SQL 解説書」を参照してください。

デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 2」のフィールド「DATE FORMAT」の値です。

日付出口ルーチンがない場合、LOCAL オプションは使用できません。

DEC(15|31)
10 進算術演算の最大精度を指定します。

デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 1」のフィールド「DECIMAL ARITHMETIC」の値です。

FLOAT(S390|IEEE)
浮動小数点ホスト変数の内容を System/390 16 進フォーマットにするか、IEEE フォーマットにするかを決定します。 この FLOAT オプションが PL/I コンパイラーの DEFAULT(HEXADEC|IEEE) オプション と異なる場合は、エラー・メッセージが出されます。

デフォルト設定は FLOAT(S390) です。

GRAPHIC
ソース・コードが混合データを使用する場合があること、 および X'0E' と X'0F' が EBCDIC データ用の特殊制御文字 (シフトアウト およびシフトイン) であることを指示します。

GRAPHIC と NOGRAPHIC は相互排他的なオプションです。 デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 1」のフィールド「MIXED DATA」の値です。

INCONLY
このオプションは、SQL プリプロセッサーが EXEC SQL INCLUDE ステートメントのみを処理することを指定します。 このオプションが有効になっている場合は、SQL プリプロセッサーによってコードは生成されません。 このオプションおよび NOINCONLY オプションは同時に指定できません。また、互換性のため、NOINCONLY がデフォルトです。
LEVEL[(aaaa)]
モジュールのレベルを定義します。ただし、aaaa は 7 文字までの 英数字値です。このオプションは、通常の使用にはお勧めしません。 また、「DSNH CLIST」パネルと「DB2I」パネルは、このオプションを サポートしません。

サブオプション  (aaaa) は省略できます。 作成される整合性トークンはブランクになります。

LEVEL オプションの省略形は L です。

LOB(DB2|PLI)
SQL プリプロセッサーによって生成される LOB (ラージ・オブジェクト) DECLARE および DEFINE ステートメントのフォーマットを決定します。

LOB(DB2) を指定すると、生成される LOB DECLARE ステートメントは、DB2 プリコンパイラーが生成する形式と整合性のあるものになります。 Enterprise PL/I V3R7 以降、すべての SQL TYPE 宣言で生成されるコードは、LOCATOR、ROWID、および *LOB_FILE タイプも含め、DB2 プリコンパイラーの出力とも整合性を持つことになります。 DB2 プリコンパイラーから移行する場合は、このオプションを選択してください。

例えば、このオプションを指定すると、以下のステートメントは、

Dcl BLOB_VAR1 Sql Type Is BLOB(32000);

次のように変換されます。

   DCL
  /*$*$*$
  Sql Type Is BLOB(32000)
  $*$*$*/
        1 BLOB_VAR1,
              3 BLOB_VAR1_LENGTH FIXED BIN(31),
              3 BLOB_VAR1_DATA CHAR(32000);

LOB(PLI) を指定すると、生成される LOB DEFINE ステートメントは、ワークステーション PL/I コンパイラーが生成する形式と整合性のあるものになります。 メインフレームとワークステーションの両方のプラットフォームで PL/I を使用する場合、プラットフォーム間の整合性を確保するには、このオプションを選択してください。 例えば、このオプションを指定すると、以下のステートメントは、

Dcl BLOB_VAR1 Sql Type Is BLOB(32000);

次のように変換されます。

DEFINE STRUCTURE
   1 BLOB$$x,
      2 BLOB_VAR1_LENGTH  FIXED BIN(31),
      2 BLOB_VAR1_DATA,
         3 BLOB_VAR1_DATA1(1) CHAR(32000);
 DCL BLOB_VAR1   TYPE  BLOB$$x        ;

デフォルトは LOB(DB2) です。

NOCCSID0
NOCCSID0 は、ホスト変数に CCSID 値を割り当てることを許可します。

ご使用のプログラムが FOR BIT DATA 列を BIT データでないデータ・タイプで更新する場合は、CCSID0 を選択する必要があります。 CCSID0 は、ホスト変数が CCSID に関連しないことを DB2 に示して、割り当てを許可します。そうでなければ、BIT データではない CCSID に関連したホスト変数が FOR BIT DATA 列に割り当てられ、DB2 にエラーが発生します。

DB2 プリコンパイラーを使用した、以前の PL/I プログラムとの互換性のためには CCSID0 を選択しなければなりません。

NOCCSID0 と CCSID0 は相互排他的なオプションです。

デフォルト設定は CCSID0 です。

NOFOR
静的 SQL の場合に NOFOR を使用すると、DECLARE CURSOR ステートメント の FOR UPDATE OF 文節の FOR UPDATE が不要になります。NOFOR を使用すると、プログラムは DB2 更新権限のある 列に対して位置決め更新を実行できます。

NOFOR を使用しない場合、プログラムが DB2 更新権限のある 列に対して位置決め更新を行うには、列リストのない FOR UPDATE を DECLARE CURSOR ステートメントに指定する必要があります。 列リストのない FOR UPDATE 文節は、静的または動的の SQL ステートメント に対して設定されます。

NOFOR の使用の有無に関係なく、列リストを付けた FOR UPDATE OF を 指定することによって、更新対象をこの文節に指定した列だけに制限でき、 また更新ロックの獲得を指定できます。

オプション STDSQL(YES) を使用すると、NOFOR が暗黙指定されます。

作成される DBRM が非常に大きい場合は、NOFOR を指定する際に 余分のストレージを用意するか、列リストのない FOR UPDATE 文節を 使用する必要があります。

NOGRAPHIC
ストリング内で X'0E' と X'0F' を制御文字でないものとして使用する ことを指示します。

GRAPHIC と NOGRAPHIC は相互排他的なオプションです。 デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 1」のフィールド「MIXED DATA」の値です。

NOINCONLY
このオプションは、SQL プリプロセッサーが EXEC SQL INCLUDE ステートメントだけではなく、すべてのステートメントを処理することを指定します。 このオプションおよび INCONLY オプションは同時に指定できません。また、互換性のため、NOINCONLY がデフォルトです。
NOOPTIONS
SQL プリプロセッサー・オプションのリストを抑止します。

NOOPTIONS オプションの省略形は NOOPTN です。

ONEPASS
2 つのパスを作成するための余分な処理時間がかからないように、1 パスで 処理を行います。ONEPASS オプションを使用する場合、 宣言は SQL 参照の前になければなりません。

ONEPASS と TWOPASS は相互排他的なオプションです。

デフォルトは ONEPASS です。

ONEPASS オプションの省略形は ON です。

OPTIONS
SQL プリプロセッサー・オプションをリストします。

デフォルトは OPTIONS です。

OPTIONS オプションの省略形は OPTN です。

QUOTESQL
引用符 (") をストリング区切り文字として、また、 アポストロフィ (’) を SQL ステートメント内 の SQL のエスケープ文字として認識します。

DB2 プリコンパイラーを使用した、以前の PL/I プログラムとの互換性のためには、APOSTSQL を選択しなければなりません。

QUOTESQL と APOSTSQL は相互排他的なオプションです。

デフォルト設定は APOSTSQL です。

SQL(ALL|DB2)
DB2 for z/OS によって認識されない SQL ステートメント がソースに含まれているかどうかを指示します。

DB2 for z/OS 以外のサーバー上で、DRDA アクセスを使用 して SQL ステートメントを実行するアプリケーション・プログラムの 場合は、SQL(ALL) をお勧めします。SQL(ALL) は、プログラム内の SQL ステートメント が DB2 for z/OS 用のものとは限らないことを指定します。したがって、SQL ステートメント・プロセッサーは DB2 構文規則 に準拠しないステートメントを受け入れます。SQL ステートメント・プロセッサーは、分散リレーショナル・データベース・ アーキテクチャー (DRDA) 規則に従って SQL ステートメントを解釈し、 処理します。プログラムが通常 ID として IBM SQL 予約語の使用を試みた 場合、SQL ステートメント・プロセッサーは通知メッセージを出します。SQL(ALL) は、SQL ステートメント・プロセッサーの制限に 影響を与えません。

デフォルトの SQL(DB2) を指定すると、SQL ステートメントが解釈され、 構文が DB2 for z/OS による使用に適しているかどうか 検査されます。データベース・サーバーが DB2 for z/OS で ある場合は、SQL(DB2) が推奨されます。

SQLFLAG(IBM|STD[(ssname[,qualifier])])
SQL ステートメントの構文検査に使用する標準を指定します。 ステートメントが標準に準拠していない場合、SQL ステートメント・ プロセッサーは、出力リストに通知メッセージ (フラグ) を書き込みます。SQLFLAG オプションは、SQL や STDSQL など、他の SQL ステートメント・ プロセッサー・オプションからは独立しています。

IBM は、SQL ステートメントを IBM SQL バージョン 1 の構文と 突き合わせて検査します。

STD は、SQL ステートメントを 1992 年 ANSI/ISO SQL 標準の エントリー・レベルの構文と突き合わせて検査します。 バージョン 7 より前のリリースでは、オプションとして 86 を使用できます。

ssname は、セマンティクス検査を要求し、 指定の DB2 サブシステム名をカタログへのアクセスに使用します。ssname を指定しない場合、SQL ステートメント・プロセッサー は構文だけを検査します。

qualifier は、フラグに使用する修飾子を指定します。qualifier を指定する場合は、まず ssname を 必ず指定する必要があります。qualifier を指定しない 場合 のデフォルトは、SQL ステートメント・プロセッサーを開始したプロセスの 許可 ID です。

STDSQL(NO|YES)
出力ステートメントが準拠する必要がある規則を指示します。

STDSQL(YES) は、プリコンパイルされるソース・プログラム内の SQL ステートメ ントが、SQL 標準の特定規則に準拠する必要があることを指示します。 STDSQL(NO) は、DB2 規則への準拠を指示します。

デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 2」のフィールド「STD SQL LANGUAGE」の値です。

STDSQL(YES) は、NOFOR オプションを自動的に暗黙指定します。

TIME(ISO|USA|EUR|JIS|LOCAL)
ロケーションのデフォルトとして指定されたフォーマットに関係なく、 時刻の出力を常に特定のフォーマットで戻すように指定します。 これらのフォーマットの詳細については、「DB2 SQL 解説書」を参照してください。

デフォルトは、DB2 のインストール時に指定した「Application Programming Defaults Panel 2」のフィールド「TIME FORMAT」の値です。

日付出口ルーチンがない場合、LOCAL オプションは使用できません。

TWOPASS
処理を 2 パスで行います。このため、宣言は参照の前になくても構いません。

ONEPASS と TWOPASS は相互排他的なオプションです。

デフォルトは ONEPASS です。

TWOPASS オプションの省略形は TW です。

VERSION(aaaa|AUTO)
パッケージ、プログラム、および作成される DBRM のバージョン ID を 定義します。VERSION を指定すると、SQL ステートメント・プロセッサー はプログラムと DBRM 内にバージョン ID を作成します。 この ID は、ロード・モジュールと DBRM のサイズに影響します。DBRM をプランまたはパッケージにバインドする際に、DB2 は バージョン ID を使用します。

プリコンパイル時にバージョンを指定しない場合、デフォルトのバージョン ID は 空ストリングです。AUTO を指定すると、SQL ステートメント・プロセッサー は整合性トークンを使用してバージョン ID を生成します。 整合性トークンがタイム・スタンプである場合は、 タイム・スタンプが ISO 文字フォーマットに変換され、バージョン ID として 使用されます。使用されるタイム・スタンプは、System/370 Store Clock 値に基づいています。

DB2 V9 以降のデータベースに対して PL/I プログラムをコンパイルすると、リストに示されたオプションは、次の 2 つのカテゴリーに分けられています。

使用された SQL プリプロセッサー・オプション (SQL Preprocessor Options Used)
コンパイル時に有効だった PL/I SQL プリプロセッサー・オプションのリスト。
使用された DB2 for z/OS コプロセッサー・オプション (DB2 for z/OS Coprocessor Options used)
コンパイル時に有効だった DB2 for z/OS コプロセッサー・オプションのリスト。 これらのオプションの判別方法については、「DB2 Universal Database for z/OS アプリケーション・プログラミングおよび SQL ガイド」を参照してください。

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)