カーソル

SELECT 文によって返される結果集合に複数行のデータが含まれるコードを作成する場合は、カーソルを宣言して使用する必要があります。カーソルは、結果集合内の現在の位置を、画面上のカーソルが現在の位置を示すのと同じように示します。

カーソルを使用すると、次の処理が行えます。

次に示すコード例は、次の一連のイベントを示しています。

  1. DECLARE CURSOR 文で、SELECT 文をカーソル Cursor1 に関連付けます。
  2. OPEN 文で、カーソルをオープンします。カーソルをオープンすると、関連付けた SELECT 文が実行されます。
  3. FETCH 文で、カラム au_fname と au_lname の現在行のデータを検索し、ホスト変数 first_name と last_name にそのデータを格納します。
  4. データが使用できなくなるまで FETCH 文でプログラムが繰り返し実行されます。
  5. CLOSE 文でカーソルをクローズします。
 EXEC SQL DECLARE Cursor1 CURSOR FOR
     SELECT au_fname, au_lname FROM authors
 END-EXEC
  . . .
     EXEC SQL
         OPEN Cursor1
     END-EXEC
       . . .
     perform until sqlcode not = zero
         EXEC SQL
             FETCH Cursor1 INTO :first_name,:last_name
         END-EXEC
         display first_name, last_name
     end-perform
      . . .
     EXEC SQL
         CLOSE Cursor1
     END-EXEC