SQL 解説書

FOR ステートメント

FOR ステートメントは、表の行ごとに、ステートメントまたはステートメントのグループを実行します。

構文

>>-+---------+---FOR--for-loop-name--AS------------------------->
   '-label:--'
 
>-----+--------------------------+--select-statement---DO------->
      '-cursor-name--CURSOR FOR--'
 
      .-------------------------------.
      V                               |
>--------SQL-procedure-statement--;---+--END FOR----+--------+-><
                                                    '-label--'
 

説明

label
FOR ステートメントのラベルを指定します。 開始ラベルを指定した場合、 そのラベルを LEAVE および ITERATE ステートメントで使用することができます。 終了ラベルを指定する場合、開始ラベルと同じにしなければなりません。

for-loop-name
生成された暗黙的な複合ステートメントのラベルを指定し、FOR ステートメントを実装します。 これは、複合ステートメントのラベルに関する規則に従いますが、 FOR ステートメント内では ITERATE または LEAVE ステートメントを併用できないという点は除きます。 for-loop-name は、 指定した select-statement から戻される列名を修飾するのに使用します。

cursor-name
SELECT ステートメントで生成される結果表から行を選択するのに使用するカーソルに、 名前を指定します。 指定されていない場合、DB2 が固有のカーソル名を生成します。

select-statement
カーソルの SELECT ステートメントを指定します。 選択リスト内のすべての列に名前を付けなければなりません。 また、複数の列に同じ名前を付けることはできません。

SQL-procedure-statement
表の行ごとに呼び出すステートメント (複数も可) を指定します。

規則

以下の例では、FOR ステートメントを使用して、employee 表全体を繰り返します。 表の中の行ごとに、SQL 変数 fullname は、 従業員のラストネーム (姓)、コンマ、ファーストネーム (名)、ブランク・スペース、 そしてミドルネームのイニシャルという順序で設定されます。 fullname の各値は、表 tnames に挿入されます。

     BEGIN
        DECLARE fullname CHAR(40);
        FOR vl AS
           SELECT firstnme, midinit, lastname FROM employee
              DO
              SET fullname = lastname || ',' || firstnme ||' ' || midinit;
              INSERT INTO tnames VALUE (fullname);
        END FOR
     END


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]