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 SQL NULL.

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 « VARIANT NULL »).

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 du code d’exécution de scripts Snowflake.

  • 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.

    Vous pouvez également utiliser un gestionnaire CONTINUE pour exécuter des instructions dans le bloc d’exception et continuer avec l’instruction qui suit immédiatement celle qui a causé l’erreur. Pour plus d’informations, voir Traitement d’une exception dans Exécution de scripts Snowflake.

Exemples

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

Appelez la procédure stockée :

CALL null_as_statement();
Copy
+-------------------+
| 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.