指定の条件が真になるまで、文または文のリストを繰り返し実行します。
ANSI準拠
WHILEは、ANSI/ISO SQL:2011に準拠しています。
必要な権限
なし。
呼び出し
実行可能形式。
ストアド プロシージャのみ。
構文
[ label_name : ] WHILE conditional_expression DO statement [...] END WHILE [ label_name ] ;
構文要素
- label_name
- WHILE文のオプションのラベル
- conditional_expression
- WHILEループに組み込まれている1つ以上の文を実行するかどうかを評価するために使用されるブール条件。
- statement
- 実行される文のリスト。
使用上の注意
- WHILEはラベルで修飾できます。
- WHILE文の中にLEAVEまたはITERATE文を指定できます。
例: WHILEの使用
WHILE hCounter > 0 DO INSERT INTO transaction (trans_num, account_num) VALUES (hCounter, hAccountNum); SET hCounter = hCounter - 1; END WHILE;
例: WHILEを使用して高値に設定する
WHILE hCounter > 0 DO SELECT highNum INTO maxNum FROM limits WHERE LIMIT_TYPE = ’HIGHNUM’; IF hCounter >= MaxNum THEN LEAVE LOOP1; END IF; INSERT INTO transaction (trans_num, account_num) VALUES (hCounter, :hAccountNum); SET hCounter = hCounter - 1; END WHILE;