BREAK (Snowflakeスクリプト)¶
BREAK
(または EXIT
)は、ループを終了します。
ループの終了の詳細については、 ループの終了 をご参照ください。
注釈
この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。
- こちらもご参照ください:
構文¶
{ BREAK | EXIT } [ <label> ] ;
条件:
label
オプションのラベル。ラベルが指定されている場合、
BREAK
はラベルの直後のステートメントにジャンプします。これを使用して、ネストされたループまたはネストされた分岐の複数のレベルから抜け出すことができます。
使用上の注意¶
BREAK
とEXIT
は同義語です。ループが別のループに埋め込まれている場合は、
BREAK
の一部として囲んでいるループのラベルを含めると、現在のループだけでなく、囲んでいるループからも抜け出すことができます。例については、以下の例セクションをご参照ください。
例¶
BREAK を使用して、現在のループだけでなく、囲んでいるループも終了する例を次に示します。
DECLARE i INTEGER; j INTEGER; BEGIN i := 1; j := 1; WHILE (i <= 4) DO WHILE (j <= 4) DO -- Exit when j is 3, even if i is still 1. IF (j = 3) THEN BREAK outer_loop; END IF; j := j + 1; END WHILE inner_loop; i := i + 1; END WHILE outer_loop; -- Execution resumes here after the BREAK executes. RETURN i; END;注: SnowSQL または Classic Console を使用している場合は、代わりに次の例を使用します(SnowSQL および Classic Console でのSnowflakeスクリプトの使用 を参照)。
EXECUTE IMMEDIATE $$ DECLARE i INTEGER; j INTEGER; BEGIN i := 1; j := 1; WHILE (i <= 4) DO WHILE (j <= 4) DO -- Exit when j is 3, even if i is still 1. IF (j = 3) THEN BREAK outer_loop; END IF; j := j + 1; END WHILE inner_loop; i := i + 1; END WHILE outer_loop; -- Execution resumes here after the BREAK executes. RETURN i; END; $$;
出力は次のとおりです。
+-----------------+ | anonymous block | |-----------------| | 1 | +-----------------+