SQL ステートメントの使用

DB2® UDB for iSeries® データベースは、SQL ステートメントをユーザーのプログラム・ソースに組み込むことによって、ILE RPG プログラムからアクセスすることができます。 SQL ステートメントを入れるには、 次の規則を使用してください。
  • SQL ステートメントは演算仕様書に自由形式または固定形式で入れます。
  • 自由形式の場合
    • 区切り文字「EXEC SQL」を使用して SQL ステートメントを開始します。
    • SQL ステートメントは複数の行に入れることができます。 継続文字は不要です。
    • SQL ステートメントの終了を示すにはセミコロンを使用します。
  • 固定形式の場合
    • SQL ステートメントは、7 ~ 15 桁目に /EXEC SQL (7 桁目に /) の区切り文字を使用して開始します。
    • ステートメントを後続の行に続けるためには、継続記入行区切り文字 (7 桁目に +) を使用します。
    • SQL ステートメントの終わりを示すには、7 ~ 15 桁目に /END-EXEC (7 桁目に /) の終了区切り文字を使用します。
  • SQL ステートメントの入力は、開始区切り文字と同一の行から始めること ができます。
注: SQL ステートメントは、プログラム内で 80 桁を超えることはできません。

図 1図 2 は組み込み SQL ステートメントの例です。

図 1. ILE RPG プログラムの中の自由形式 SQL ステートメント
 ...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      /FREE
          X = Y + Z; // ILE RPG calculation operations

          // The entire SQL statement is on one line
          EXEC SQL INSERT INTO MYLIB/MYFILE (FLD1) VALUES(12);

          // The SQL statement begins on the same line as
          // EXEC SQL and then it is is split across several lines
          EXEC SQL   INSERT
                        INTO MYLIB/MYFILE
                        (FLD1) VALUE(12);

          // The SQL statement begins on the line after
          // EXEC SQL and then it is is split across several lines
          EXEC SQL
              INSERT INTO MYLIB/MYFILE
                       (FLD1) VALUE(12);

          X = Y + Z; // ILE RPG calculation operations
      /END-FREE
図 2. ILE RPG プログラムの中の固定形式 SQL ステートメント
 ...+....1....+....2....+....3....+....4....+....5....+....6....+....7..
      * ILE RPG calculation operations
     C                   EVAL      X = Y + Z

      * The entire SQL statement is on one line
     C/EXEC SQL INSERT INTO MYLIB/MYFILE (FLD1) VALUES(12)
     C/END-EXEC

      * The SQL statement begins on the same line as
      * EXEC SQL and then it is is split across several lines
     C/EXEC SQL   INSERT
     C+             INTO MYLIB/MYFILE
     C+                 (FLD1) VALUE(12)
     C/END-EXEC

      * The SQL statement begins on the line after
      * EXEC SQL and then it is is split across several lines
     C/EXEC SQL
     C+      INSERT INTO MYLIB/MYFILE
     C+                (FLD1) VALUE(12)
     C/END-EXEC

      * ILE RPG calculation operations
     C                   EVAL      X = Y + Z
     C

変更の始まりSQL ステートメントを処理するには、別のコマンドを入力する必要があり ます。詳細については、Web サイト http://www.ibm.com/systems/i/infocenter/IBM® i Information Center の中の『データベースおよびファイル・システム』カテゴリーの『DB2 for i』の節を参照してください。変更の終わり

SEU による SQL ステートメントの構文検査の処理方法については、資料「ADTS for AS/400: Source Entry Utility」を参照してください。