CONTINUE (Snowflake Scripting)

CONTINUE (oder ITERATE) überspringt den Rest der Anweisungen in der Iteration einer Schleife ´und beginnt die nächste Iteration der Schleife.

Weitere Informationen zum Beenden der aktuellen Iteration einer Schleife finden Sie unter Beenden einer Iteration ohne Beendigung der Schleife.

Bemerkung

Dieses Snowflake Scripting-Konstrukt ist nur innerhalb eines Snowflake Scripting-Blocks gültig.

Siehe auch::

BREAK

Syntax

{ CONTINUE | ITERATE } [ <label> ] ;
Copy

Wobei:

label

Ein optionales Label. Wenn das Label angegeben ist, beginnt CONTINUE bei der ersten Anweisung in der Schleife mit dem Label.

Damit können Sie aus mehr als einer Ebene einer verschachtelten Schleife oder einer verschachtelten Verzweigung herauszuspringen.

Nutzungshinweise

  • CONTINUE und ITERATE sind gleichbedeutend.

  • Wenn die Schleife in eine oder mehrere andere Schleifen eingebettet ist, können Sie nicht nur die aktuelle Schleife verlassen, sondern auch bei der ersten Anweisung der umschließenden Schleife beginnen, indem Sie das Label der umschließenden Schleife als Teil von CONTINUE einfügen. Ein Beispiel dazu finden Sie im Beispielabschnitt unten.

Beispiele

Die folgende Schleife wird 3 Mal durchlaufen. Da der Code nach der CONTINUE-Anweisung nicht ausgeführt wird, hat die Variable mit dem Namen counter2 den Wert 0 und nicht 3.

DECLARE
  counter1 NUMBER(8, 0);
  counter2 NUMBER(8, 0);
BEGIN
  counter1 := 0;
  counter2 := 0;
  WHILE (counter1 < 3) DO
    counter1 := counter1 + 1;
    CONTINUE;
    counter2 := counter2 + 1;
  END WHILE;
  RETURN counter2;
END;
Copy

Hinweis: Wenn Sie SnowSQL oder die klassische Weboberfläche verwenden, benutzen Sie stattdessen dieses Beispiel (siehe Verwenden von Snowflake Scripting in SnowSQL und über die klassische Weboberfläche):

EXECUTE IMMEDIATE $$
DECLARE
    counter1 NUMBER(8, 0);
    counter2 NUMBER(8, 0);
BEGIN
    counter1 := 0;
    counter2 := 0;
    WHILE (counter1 < 3) DO
        counter1 := counter1 + 1;
        CONTINUE;
        counter2 := counter2 + 1;
    END WHILE;
    RETURN counter2;
END;
$$;
Copy

Hier ist die Ausgabe nach Ausführung des Beispiels:

+-----------------+
| anonymous block |
|-----------------|
|               0 |
+-----------------+
Copy