16.20 - WHILE - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL ストアド プロシージャおよび埋め込みSQL

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

目的

指定の条件が真になるまで、文または文のリストを繰り返し実行します。

呼び出し

実行可能形式。

ストアド プロシージャのみ。

構文





















label_name
WHILE文のオプションのラベル
終了ラベルが指定されている場合、終了ラベルと同等の開始ラベルを指定する必要があります。開始ラベルはコロン(:)で終わっている必要があります。
BEGIN…END複合文のラベル名は繰返し文内で再使用できません。入れ子になっているWHILE文のグループ内で1つのラベル名を再使用することはできませんが、入れ子になっていない別の繰返し文で再使用することはできます。
conditional_expression
WHILEループに組み込まれている1つ以上の文を実行するかどうかを評価するために使用されるブール条件。
条件リストにローカル変数、パラメータ、またはカーソル相関名が含まれる場合は、INおよびNOT IN演算子を使用できません。
conditional_expressionでOUTパラメータを使用することはできません。
statement
実行される文のリスト。
リストには、次のものが含まれます。
  • DML、DDL、またはDCL文(動的SQLも含む)。
  • 制御文、BEGIN…ENDを含む。

ANSI準拠

WHILEは、ANSI/ISO SQL:2011に準拠しています。

許可

なし。

ルール

  • 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;

関連トピック

LEAVEまたはITERATE文の詳細については、ITERATEおよびLEAVEを参照してください。