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

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

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

表 7 は、 すべての SQL プリプロセッサー・オプションの省略形 (存在する場合) を、IBM 提供のデフォルト値と共にリストします。この表では、相互排他的なオプションは縦棒 (|) によって分離されています。 また括弧 ([ ]) は、囲まれたオプションが省略可能であることを示しています。

表 7 の後の項で、これらのオプションを アルファベット順に説明しています。

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

表 7. SQL プリプロセッサー・オプション、および IBM 提供のデフォルト値
SQL プリプロセッサー・オプション
省略名
z/OS のデフォルト値
APOSTSQL | QUOTESQL
-
APOSTSQL
ATTACH(TSO | CAF | RRSAF)
-
ATTACH(TSO)
CCSID0 | NOCCSID0
-
CCSID0
CONNECT(2 | 1)
CT
CONNECT(2)
DATE(ISO | USA | EUR |
JIS | LOCAL)
-
DB2 インストール時の「Application
Programming Defaults Panel 2」のフィールド「DATE FORMAT」の値
DEC(15 | 31)
-
DB2 インストール時の「Application
Programming Defaults Panel 1」のフィールド「DECIMAL ARITHMETIC」の値
FLOAT(S390 | IEEE)
-
FLOAT(S390)
GRAPHIC | NOGRAPHIC
-
DB2 インストール時の「Application
Programming Defaults Panel 1」のフィールド「MIXED DATA」の値
INCONLY | NOINCONLY
-
NOINCONLY
LEVEL[(aaaa)]
L
-
LOB ( DB2 | PLI )
-
LOB( DB2 )
NOFOR
-
-
ONEPASS | TWOPASS
ON | TW
ONEPASS
SCOPE | NOSCOPE
-
NOSCOPE
SQL(ALL | DB2)
-
SQL(DB2)
SQLFLAG(IBM |
STD[(ssname[,qualifier])])
-
-
STDSQL(NO | YES)
-
DB2 インストール時の「Application
Programming Defaults Panel 2」のフィールド「STD SQL LANGUAGE」の値
TIME(ISO | USA | EUR |
JIS | LOCAL)
-
DB2 インストールの「Application
Programming Defaults Panel 2」のフィールド「TIME FORMAT」の値
VERSION(aaaa | AUTO)
-
-
XREF | NOXREF
-
NOXREF

APOSTSQL

APOSTSQL オプションは、SQL ステートメント内で、アポストロフィ (') をストリング区切り文字として認識し、引用符 (") を SQL エスケープ文字として認識するように指定します。

QUOTESQL オプションは、SQL ステートメント内で、引用符 (") をストリング区切り文字として認識し、アポストロフィ (’) を SQL エスケープ文字として認識するように指定します。

構文図を読む構文図をスキップする   .-APOSTSQL-.
>>-+----------+------------------------------------------------><
   '-QUOTESQL-'
 

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

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

デフォルトは APOSTSQL です。

ATTACH

ATTACH オプションは、アプリケーションが DB2TSO、CAF、および RRSAF へのアクセスに使用する接続機能を指定します。

構文図を読む構文図をスキップする              .-TSO---.
>>-ATTACH--(--+-------+--)-------------------------------------><
              +-CAF---+
              '-RRSAF-'
 

接続機能をロードする アプリケーションは、ダミーの DSNHLI エントリー・ポイントをコーディングする 代わりに、このオプションを使用して適切な接続機能を指定できます。

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

CCSID0

CCSID0 オプションは、PL/I SQL プリプロセッサーによってホスト変数に CCSID 値が割り当てられないことを指定します。

NOCCSID0 オプションは、PL/I SQL プリプロセッサーによってホスト変数に CCSID 値を割り当てることを許可します。

構文図を読む構文図をスキップする   .-CCSID0---.
>>-+----------+------------------------------------------------><
   '-NOCCSID0-'
 

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

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

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

デフォルトは CCSID0 です。

CONNECT

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

構文図を読む構文図をスキップする            .-2-.
>>-CONNECT(-+---+-)--------------------------------------------><
            '-1-'
 

省略形: CT

CONNECT(2)
CONNECT (タイプ 2) ステートメントの規則を適用します。
CONNECT(1)
CONNECT (タイプ 1) ステートメントの規則を適用します。

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

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

DATE

DATE オプションは、ロケーション・デフォルトとして指定された形式とは無関係に、日付の出力を常に特定の形式で返すことを指定します。 これらの形式について詳しくは、「DB2 SQL 解説書」を参照してください。

構文図を読む構文図をスキップする>>-+-----------------------+-----------------------------------><
   '-DATE--(--+-------+--)-'
              +-ISO---+
              +-USA---+
              +-EUR---+
              +-JIS---+
              '-LOCAL-'
 

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

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

DEC

DEC オプションは、10 進算術演算の最大精度を指定します。

構文図を読む構文図をスキップする>>-+-------------------+---------------------------------------><
   |         .-15-.    |
   '-DEC--(--+----+--)-'
             '-31-'
 

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

FLOAT

FLOAT オプションは、浮動小数点ホスト変数の内容を System/390 16 進フォーマットにするか、IEEE フォーマットにするかを決定します。

構文図を読む構文図をスキップする             .-S390-.
>>-FLOAT--(--+------+--)---------------------------------------><
             '-IEEE-'
 

この FLOAT オプションが PL/I コンパイラーの DEFAULT(HEXADEC|IEEE) オプション と異なる場合は、エラー・メッセージが出されます。

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

GRAPHIC

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

NOGRAPHIC オプションは、ストリング内で X'0E' および X'0F' を制御文字ではないものとして使用することを許可します。

構文図を読む構文図をスキップする>>-+-----------+-----------------------------------------------><
   +-GRAPHIC---+
   '-NOGRAPHIC-'
 

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

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

INCONLY

INCONLY オプションは、SQL プリプロセッサーが EXEC SQL INCLUDE ステートメントのみを処理することを指定します。このオプションが有効になっている場合は、SQL プリプロセッサーによってコードは生成されません。

NOINCONLY オプションは、SQL プリプロセッサーが EXEC SQL INCLUDE ステートメントだけではなく、すべてのステートメントを処理することを指定します。

構文図を読む構文図をスキップする   .-NOINCONLY-.
>>-+-----------+-----------------------------------------------><
   '-INCONLY---'
 

INCONLY オプションおよび NOINCONLY オプションは同時に指定できません。

また、互換性のため、NOINCONLY がデフォルトです。

LEVEL

LEVEL オプションは、モジュールのレベルを定義します。

構文図を読む構文図をスキップする>>-+------------------+----------------------------------------><
   '-LEVEL-+--------+-'
           '-(aaaa)-'
 

省略形: L

aaaa
7 文字以内の英数字値です。

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

このオプションは、通常の使用にはお勧めしません。 また、「DSNH CLIST」パネルと「DB2I」パネルは、このオプションを サポートしません。

LOB

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

構文図を読む構文図をスキップする           .-DB2-.
>>-LOB--(--+-----+--)------------------------------------------><
           '-PLI-'
 

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) です。

NOFOR

静的 SQL の場合に NOFOR を使用すると、DECLARE CURSOR ステートメント の FOR UPDATE OF 文節の FOR UPDATE が不要になります。

構文図を読む構文図をスキップする>>-+-------+---------------------------------------------------><
   '-NOFOR-'
 

NOFOR を使用すると、プログラムは DB2 更新権限のある 列に対して位置決め更新を実行できます。

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

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

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

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

ONEPASS

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

TWOPASS オプションは、SQL プリプロセッサーが 2 つのパスで処理を行うことを指定します。 このため、参照の前に宣言がなくても構いません。

構文図を読む構文図をスキップする   .-ONEPASS-.
>>-+---------+-------------------------------------------------><
   '-TWOPASS-'
 

省略形: ONTW

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

デフォルトは ONEPASS です。

SCOPE

SCOPE オプションは、ホスト変数参照を解決するとき宣言のスコープに関する PL/I 規則を適用するかどうかを決定します。

構文図を読む構文図をスキップする   .-NOSCOPE-.
>>-+---------+-------------------------------------------------><
   '-SCOPE---'
 

SCOPE が指定されていると、ホスト変数参照を解決するとき宣言のスコープに関する PL/I 規則が適用されます。 つまり、SQL ステートメント内のホスト変数参照は、あたかも変数が他の PL/I ステートメントで使用されたかのように常に同じ方法で解決されます。

SCOPE オプションを使用する際は、以下の制約事項に注意してください。

NOSCOPE が指定されているときは、各プログラム内ですべてのホスト変数の名前が固有になるようにしてください。 ホスト変数名が 2 回以上宣言された場合は、SQL ステートメント内でのその変数の参照は最初の宣言を使用して解決されます。

デフォルトは NOSCOPE です。

SQL

SQL オプションは、DB2 for z/OS によって認識されない SQL ステートメント がソースに含まれているかどうかを指示します。

構文図を読む構文図をスキップする           .-DB2-.
>>-SQL--(--+-----+--)------------------------------------------><
           '-ALL-'
 
DB2
SQL ステートメントを解釈し、構文が DB2 for z/OS での使用に適しているかどうかを検査します。

データベース・サーバーが DB2 for z/OS で ある場合は、SQL(DB2) が推奨されます。

ALL
プログラム内の SQL ステートメントが、必ずしも DB2 for z/OS 用のものではないことを指示します。

DB2 for z/OS 以外のサーバー上で、DRDA アクセスを使用 して SQL ステートメントを実行するアプリケーション・プログラムの 場合は、SQL(ALL) をお勧めします。

SQL(ALL) を指定すると、SQL ステートメント・プロセッサーは以下のアクションを行います。

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

SQLFLAG

SQLFLAG オプションは、SQL ステートメントの構文検査に使用する標準を指定します。

構文図を読む構文図をスキップする>>-+-----------------------------------------------------+-----><
   '-SQLFLAG--(--+----------------------------------+--)-'
                 +-STD-+--------------------------+-+
                 |     '-(ssname-+------------+-)-' |
                 |               '-,qualifier-'     |
                 '-IBM------------------------------'
 
IBM
SQL ステートメントを IBM SQL バージョン 1 の構文と突き合わせて検査します。
STD
SQL ステートメントを 1992 年の ANSI/ISO SQL 標準のエントリー・レベルの構文と突き合わせて検査します。 バージョン 7 より前のリリースでは、オプションとして 86 を使用できます。
ssname
セマンティクス検査を要求し、 指定の DB2 サブシステム名をカタログへのアクセスに使用します。ssname を指定しない場合、SQL ステートメント・プロセッサー は構文だけを検査します。
qualifier
フラグを立てるために使用する修飾子を指定します。 qualifier を指定する場合は、まず ssname を 必ず指定する必要があります。qualifier を指定しない 場合 のデフォルトは、SQL ステートメント・プロセッサーを開始したプロセスの 許可 ID です。

ステートメントが標準に準拠していない場合、SQL ステートメント・ プロセッサーは、出力リストに通知メッセージ (フラグ) を書き込みます。SQLFLAG オプションは、SQL や STDSQL など、他の SQL ステートメント・ プロセッサー・オプションからは独立しています。

STDSQL

STDSQL オプションは、出力ステートメントが準拠する必要がある規則を指示します。

構文図を読む構文図をスキップする>>-+-----------------------+-----------------------------------><
   |            .-NO--.    |
   '-STDSQL--(--+-----+--)-'
                '-YES-'
 
NO
DB2 規則への準拠を指示します。
YES
プリコンパイルされるソース・プログラム内の SQL ステートメントが、SQL 標準の特定規則に準拠することを指示します。

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

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

TIME

TIME オプションは、ロケーション・デフォルトとして指定された形式とは無関係に、時刻の出力を常に特定の形式で返すことを指定します。 これらの形式について詳しくは、「DB2 SQL 解説書」を参照してください。

構文図を読む構文図をスキップする>>-+-----------------------+-----------------------------------><
   '-TIME--(--+-------+--)-'
              +-ISO---+
              +-USA---+
              +-EUR---+
              +-JIS---+
              '-LOCAL-'
 

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

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

VERSION

VERSION オプションは、パッケージ、プログラム、および作成される DBRM のバージョン ID を定義します。

構文図を読む構文図をスキップする>>-+-------------------------+---------------------------------><
   '-VERSION--(--+------+--)-'
                 +-aaaa-+
                 '-AUTO-'
 

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 ガイド」を参照してください。

XREF

(NO)XREF オプションは、SQL ステートメントで使用される名前の相互参照テーブルが、コンパイラー・リストに含まれるかどうかを決定します。

構文図を読む構文図をスキップする   .-NOXREF-.
>>-+--------+--------------------------------------------------><
   '-XREF---'
 

XREF オプションを指定すると、コンパイラー・リストに、以下の項目を含む相互参照テーブルが組み込まれます。

NOXREF オプションを指定すると、SQL ステートメントで使用される名前の相互参照テーブルは、コンパイラー・リストに組み込まれません。

XREF SQL プリプロセッサー・オプションを使用するには、DB2 for z/OS バージョン 10 以降が必要です。

デフォルトは NOXREF です。


Terms of use | Feedback

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