Catégories :

Compte et session DDL

SET

Initialise la valeur d’une variable de session dans le résultat d’une expression SQL.

Voir aussi :

SHOW VARIABLES , UNSET

Syntaxe

SET <var> = <expr>

SET ( <var> [ , <var> ... ] )  = ( <expr> [ , <expr> ... ] )

Paramètres

var

Spécifie l’identificateur de la variable à initialiser.

expr

Spécifie l’expression SQL de la variable.

Notes sur l’utilisation

  • La commande prend en charge le paramétrage de plusieurs variables dans la même instruction.

  • Si la commande exécute des expressions complexes, elle peut nécessiter l’exécution d’un entrepôt virtuel dans la session.

  • Le nombre d’expressions doit correspondre au nombre de variables à initialiser.

  • La taille des chaînes ou des variables binaires est limitée à 256 octets.

  • L’identificateur (c’est-à-dire le nom) d’une variable SQL est limité à 256 caractères.

  • Les noms de variables tels que CURRENT ou PUBLIC sont réservés à une utilisation future par Snowflake et ne peuvent être utilisés.

Exemples

Ces deux exemples utilisent des constantes :

SET V1 = 10;

SET V2 = 'example';

Cet exemple définit plusieurs variables à la fois :

SET (V1, V2) = (10, 'example');

Cet exemple définit la variable sur la valeur d’une expression non triviale qui utilise une requête SQL :

SET id_threshold = (SELECT COUNT(*) FROM table1) / 2;

L’exemple suivant montre ceci si une commande SET évalue toutes les expressions du côté droit de l’opérateur d’affectation avant de définir la première expression du côté gauche de l’opérateur. Notez que la valeur de la variable nommée « max » est définie en fonction de l’ancienne valeur de « min » et non de la nouvelle valeur.

set (min, max) = (40, 70);
set (min, max) = (50, 2 * $min);
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
select $max;
+------+
| $MAX |
|------|
|   80 |
+------+