Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


7.6.1 WHILE文の形式と規則

〈この項の構成〉

(1) 機能

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

(2) 形式

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

(3) オペランド

(a) 〔開始ラベル〕

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

(b) 探索条件

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

(c) SQL手続き文

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

(d) END 〔WHILE〕 〔終了ラベル〕

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

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

(4) 共通規則

  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. 探索条件中に副問合せを指定できません。

(5) 留意事項

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