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;
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;
$$
;
CALL null_as_statement();
+-------------------+
| NULL_AS_STATEMENT |
|-------------------|
| NULL |
+-------------------+
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.