NULL (Exécution de scripts Snowflake)

NULL peut être utilisé comme une instruction « non opération » (pas d’opération).

Note

Using NULL as a statement is uncommon. NULL is usually used as a value, rather than as a statement.

As a value, NULL means « no value. » For more information, see the Wikipedia article on SQL NULL.

When working with semi-structured data types, such as JSON, you might need to distinguish between NULL as an SQL value and NULL as a JSON value (also called « 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

  • The NULL statement can be executed only inside Snowflake Scripting code.

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

  • A NULL statement in a branch does nothing; however, it communicates to the reader that the author of the code explicitly considered the condition for which the branch would execute. In other words, the NULL shows that the branch condition wasn’t overlooked or accidentally omitted.

  • 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 Handling an exception in Snowflake Scripting.

Examples

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

The NULL value returned by the CALL statement isn’t directly due to the NULL statement in the exception. Instead, the return value is NULL because the stored procedure didn’t execute an explicit RETURN statement.

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