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;
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;
$$
;
Appelez la procédure stockée :
CALL null_as_statement();
+-------------------+
| 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.