LOOP ステートメントは、一連のステートメントを繰り返し無条件に実行します。
プログラムの論理の中で、ループを終了する何らかの方法を提供してください。LEAVE または RETURN ステートメントのどちらかを使用できます。
>>-+-LOOP--statements--END--LOOP------------------+------------>< '-Label--:--LOOP--statements--END--LOOP--Label-'
もしあれば、Label はステートメントに名前を与えます。 このことは LOOP ステートメントの動作に影響を与えませんが、statements は ITERATE および LEAVE ステートメント、または中に ITERATE および LEAVE を組み込む他のラベル付きステートメントを組み込めるようになります。2 番目の LABEL を取れるのは、最初の LABEL がある場合だけであり、そのとき 2 つの LABEL は同一でなければなりません。
同じレベルの 2 つ以上のラベル付きステートメントが同じ Label を持つことは可能ですが、2 番目の Label の利点は部分的に否定されます。その利点とは、これがあいまいさなしに正確に各 END をその LOOP と一致させることです。ただし、statements 内のラベル付きステートメントが同じ Label を持つことはできません。なぜなら、この場合 ITERATE と LEAVE ステートメントの動作があいまいになるからです。
必須論理がループを常に途中で終了するように記述している場合には、LOOP ステートメントは有効です。それは、このような場合には、ループ条件のテストが REPEAT や WHILE ステートメント内にあっても不要かつ無駄だからです。
DECLARE i INTEGER;
SET i = 1;
X : LOOP
...
IF i>= 4 THEN
LEAVE X;
END IF;
SET i = i + 1;
END LOOP X;