PL/I SQL プリプロセッサーを使用した場合は、PL/I SQL コンパイラー によって、組み込み SQL ステートメントが含まれたソース・プログラムが コンパイル時に処理され、別個のプリコンパイル・ステップを使用する必要は なくなります。 別個のプリコンパイル・ステップの使用も引き続きサポートされますが、PL/I SQL プリプロセッサーを 使用することをお勧めします。PL/I SQL プリプロセッサーを使用すると、デバッグ中に SQL ステートメント だけが表示されるように (生成された PL/I ソースは表示されない)、 デバッグ・ツールによる対話式デバッグが強化されています。
さらに、PL/I SQL プリプロセッサーを使用すると、SQL プログラムに 対する DB2 プリコンパイラーの制限が一部解消されます。PL/I SQL プリプロセッサーを使用して SQL ステートメントを処理すると、 次のことが可能になります。
PL/I コンパイラー・リストには、PL/I SQL プリプロセッサー が生成したエラー診断情報 (SQL ステートメントの構文エラーなど) が含まれています。
PL/I SQL プリプロセッサーを使用するには、次のことを行う 必要があります。
PP(SQL('options'))
このコンパイラー・オプションを指定すると、コンパイラーにより PL/I SQL プリプロセッサーが呼び出されます。 SQL キーワードの後に、SQL 処理オプションのリストを括弧で囲んで指定します。 各オプションは、コンマまたはスペースで区切ることができますが、 単一引用符または二重引用符で囲まれている必要があります。
例えば PP(SQL('DATE(USA),TIME(USA)')) は、 DATE および TIME の両データ・タイプに対して USA フォーマットを使用するように プリプロセッサーに指示します。
また、LOB サポートを使用するには次のオプションを指定する必要があります。
LIMITS( FIXEDBIN(31,63) FIXEDDEC(31) )
PL/I SQL プリプロセッサーは、SQL ステートメントの処理を行うため に DB2 モジュールを呼び出します。 このため、DB2 ロード・ライブラリーのデータ・セット名を、 コンパイル・ステップ用の STEPLIB 連結に組み込む必要があります。
ソース・プログラムへの 2 次入力を指定する SQL INCLUDE member-name ステートメント がプログラムにある場合は、member-name を含むデータ・セットの名前を、 コンパイル・ステップ用の SYSLIB 連結に組み込む必要があります。
PL/I プログラムをコンパイルすると、DB2 データベース要求モジュール (DBRM) が 生成されるので、DBRM を書き込む先のデータ・セットを指定するために、DBRMLIB DD ステートメントが必要です。
//STEPLIB DD DSN=DSN710.SDSNLOAD,DISP=SHR //SYSLIB DD DSN=PAYROLL.MONTHLY.INCLUDE,DISP=SHR //DBRMLIB DD DSN=PAYROLL.MONTHLY.DBRMLIB.DATA(MASTER),DISP=SHR