NULL (Exécution de scripts Snowflake)¶

NULL peut ĂȘtre utilisĂ© comme une instruction « non opĂ©ration Â» (pas d’opĂ©ration).

Note

L’utilisation de NULL comme instruction est peu courante. NULL est gĂ©nĂ©ralement utilisĂ© comme une valeur, plutĂŽt que comme une instruction.

En tant que valeur, NULL signifie « aucune valeur Â». Pour plus d’informations, voir l’article Wikipedia sur SQLNULL.

Lorsque vous travaillez avec des types de données semi-structurées, comme JSON, vous pouvez avoir besoin de faire la distinction entre NULL en tant que valeur SQL et NULL en tant que valeur JSON (également appelée « variante nulle »).

Note

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

Syntaxe¶

NULL;
Copy

Notes sur l’utilisation¶

  • L’instruction NULL ne peut ĂȘtre exĂ©cutĂ©e qu’à l’intĂ©rieur de scripts Snowflake Scripting.

  • Une instruction NULL dans un gestionnaire d’exception garantit que le code continue de s’exĂ©cuter au lieu de s’interrompre s’il n’existe pas de gestionnaire de niveau supĂ©rieur.

  • Une instruction NULL dans une branche ne fait rien ; cependant, elle communique au lecteur que l’auteur du code a explicitement considĂ©rĂ© la condition pour laquelle la branche s’exĂ©cuterait. En d’autres termes, l’instruction NULL montre que la condition de la branche n’a pas Ă©tĂ© nĂ©gligĂ©e ou accidentellement omise.

  • Avant d’utiliser l’instruction NULL, envisagez des alternatives.

    Par exemple, supposons que vous Ă©criviez une procĂ©dure stockĂ©e avec un gestionnaire d’exception. Dans la plupart des procĂ©dures stockĂ©es, si chaque chemin de code sans exception doit retourner une valeur, alors chaque chemin de code impliquant un gestionnaire d’exception doit Ă©galement retourner une valeur. Dans ce cas, il faut Ă©viter d’exĂ©cuter une instruction NULL. Envisagez plutĂŽt de renvoyer explicitement NULL, un jeu de rĂ©sultats vide ou un indicateur d’erreur.

Exemple¶

Le code suivant utilise une instruction NULL dans un gestionnaire d’exception pour s’assurer que l’exception est capturĂ©e (plutĂŽt que transmise Ă  l’appelant), mais aucune action spĂ©cifique n’est entreprise :

CREATE PROCEDURE null_as_statement()
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
    SELECT 1 / 0;
    RETURN 'If you see this, the exception was not thrown/caught properly.';
EXCEPTION
    WHEN OTHER THEN
        NULL;
END;
$$
;
Copy
CALL null_as_statement();
+-------------------+
| NULL_AS_STATEMENT |
|-------------------|
|              NULL |
+-------------------+
Copy

Note

La valeur NULL renvoyĂ©e par l’instruction CALL n’est pas directement due Ă  l’instruction NULL dans l’exception ; au lieu de cela, la valeur de retour est NULL parce que la procĂ©dure stockĂ©e n’a pas exĂ©cutĂ© une instruction RETURN explicite.

Snowflake recommande que les procĂ©dures stockĂ©es renvoient explicitement une valeur, y compris dans chaque branche du gestionnaire d’exception.