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.