WHILE文文の繰り返し

機能

SQL文の実行を繰り返します。

形式

 〔開始ラベル:〕
 WHILE 探索条件 DO
  SQL手続き文;〔SQL手続き文;〕…
 END 〔WHILE〕 〔終了ラベル〕

オペランド

WHILE文の文ラベルを指定します。

SQL手続き文の実行を繰り返す条件を指定します。

繰り返し実行するSQL手続き文を指定します。

WHILE文の終了を指定します。終了ラベルには,文ラベルを指定します。

WHILEは指定してもしなくても同じです。

共通規則

  1. 終了ラベルを指定する場合は,開始ラベルと同じ名称の文ラベルを指定してください。
  2. 文ラベルの有効範囲は,WHILE文の開始から終了までの間です。そのWHILE文中に含まれるほかの文の文ラベル,及びループ変数名と同じ名称の文ラベルは指定できません。ただし,SQL手続き文中にハンドラ宣言がある場合,そのハンドラ宣言中は除きます。同一名称の文ラベルの指定可否の例を次に示します。

    AAA: WHILE X < 100 DO
     BEGIN  ...........................................1
       DECLARE CN1 CONDITION FOR SQLCODE VALUE -800;
       DECLARE EXIT HANDLER FOR CN1
       AAA: BEGIN  .........................................2
           :
       END AAA;
       AAA: BEGIN  .........................................3
         DECLARE CN2 CONDITION FOR SQLCODE VALUE -800;
         DECLARE EXIT HANDLER FOR CN2
           :
       END AAA;
       SET X=X+1;
     END
    END WHILE AAA

    〔説明〕
    2は,1と同一名称ですが,ハンドラ宣言中のため指定できます。
    3は,1と同一名称であり,ハンドラ宣言中でないため指定できません。
  3. 探索条件を評価し,結果が真の場合はSQL手続き文を実行します。探索条件が偽,又は不定になるまで,繰り返しSQL手続き文を実行します。
  4. 指定したSQL手続き文は,指定した順序で実行されます。SQL手続き文の実行でエラーが発生した場合,それ以降のSQL手続き文は実行されません。WHILE文の実行も終了します。
  5. 探索条件中に副問合せを指定できません。

留意事項

  1. WHILE文は,SQLルーチン中に指定できます。