BREAK (Snowflake Scripting)¶
BREAK
(oder EXIT
) beendet eine Schleife.
Weitere Informationen zur Beendigung von Schleifen finden Sie unter Beenden einer Schleife.
Bemerkung
Dieses Snowflake Scripting-Konstrukt ist nur innerhalb eines Snowflake Scripting-Blocks gültig.
- Siehe auch::
Syntax¶
{ BREAK | EXIT } [ <label> ] ;
Wobei:
label
Ein optionales Label. Wenn das Label angegeben ist, springt
BREAK
zu der Anweisung unmittelbar nach dem Label.Damit können Sie aus mehr als einer Ebene einer verschachtelten Schleife oder einer verschachtelten Verzweigung herauszuspringen.
Nutzungshinweise¶
BREAK
undEXIT
sind gleichbedeutend.Wenn die Schleife in eine oder mehrere andere Schleifen eingebettet ist, können Sie nicht nur die aktuelle Schleife, sondern auch eine umschließende Schleife verlassen, indem Sie das Label der umschließenden Schleife als Teil von
BREAK
einfügen. Ein Beispiel dazu finden Sie im Beispielabschnitt unten.
Beispiele¶
Hier ist ein Beispiel für die Verwendung von BREAK, um nicht nur die aktuelle Schleife, sondern auch eine umgebende Schleife zu verlassen:
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;
Hinweis: Wenn Sie Snowflake CLI, SnowSQL, die Classic Console, oder die Methode execute_stream
oder execute_string
in Python Connector Code verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in Snowflake CLI, SnowSQL, Classic Console und im Python-Connector):
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 |
+-----------------+