CONTINUE (Exécution de scripts Snowflake)

CONTINUE (ou ITERATE) saute le reste des instructions dans l’itération d’une boucle et commence l’itération suivante de la boucle.

Pour plus d’informations sur la fin de l’itération actuelle d’une boucle, voir Terminer une itération sans terminer la boucle.

Note

Cette construction Exécution de scripts Snowflake n’est valable qu’à l’intérieur d’un bloc Exécution de scripts Snowflake.

Voir aussi

BREAK

Syntaxe

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

Où :

label

Une étiquette facultative. Si l’étiquette est spécifiée, le CONTINUE commencera à la première instruction de la boucle avec l’étiquette.

Vous pouvez l’utiliser pour continuer plus d’un niveau plus haut dans une boucle imbriquée ou une branche imbriquée.

Notes sur l’utilisation

  • CONTINUE et ITERATE sont synonymes.

  • Si la boucle est imbriquée dans une ou plusieurs autres boucles, vous pouvez sortir de la boucle actuelle et commencer à partir de la première instruction de la boucle englobante en incluant l’étiquette de la boucle englobante dans le CONTINUE. Pour un exemple, voir la section Exemples ci-dessous.

Exemples

La boucle suivante itère 3 fois. Comme le code après l’instruction CONTINUE n’est pas exécuté, la variable nommée counter2 sera 0 au lieu de 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

Remarque : si vous utilisez SnowSQL ou l”Classic Console, utilisez cet exemple à la place (voir Utilisation d’Exécution de scripts Snowflake dans SnowSQL et l”Classic Console) :

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

Voici le résultat de l’exécution de l’exemple :

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