DECLARE (Exécution de scripts Snowflake)¶
Déclare un(e) ou plusieurs variables, curseurs, RESULTSETs ou exceptions Exécution de scripts Snowflake.
Pour plus d’informations sur les variables, les curseurs, les RESULTSETs et les exceptions, voir :
- Voir aussi:
Syntaxe¶
DECLARE
{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
[{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
La syntaxe de chaque type de déclaration est décrite plus en détail ci-dessous.
Syntaxe de déclaration des variables¶
Utilisez la syntaxe suivante pour déclarer une variable.
<variable_declaration> ::=
<variable_name> [<type>] [ { DEFAULT | := } <expression>]
Où :
variable_name
Nom de la variable. Le nom doit suivre les règles de dénomination pour Identificateurs d’objet.
type
DEFAULT expression
ou .:= expression
Affecte la valeur de l’expression
expression
à la variable. Sitype
etexpression
sont tous deux spécifiés, l’expression doit correspondre à un type de données qui correspond, ou peut être implicitement converti autype
spécifié.
Par exemple :
profit NUMBER(38, 2) := 0;
Pour un exemple complet, voir Exemples.
Pour plus d’informations sur les variables, voir Utilisation des variables.
Syntaxe de déclaration du curseur¶
Utilisez la syntaxe suivante pour déclarer un curseur.
<cursor_declaration> ::=
<cursor_name> CURSOR FOR <query>
Où :
cursor_name
Le nom à donner au curseur. Il peut s’agir de tout identificateur Snowflake valide qui n’est pas déjà utilisé dans ce bloc. L’identificateur est utilisé par d’autres commandes liées au curseur, comme
FETCH
.query
La requête qui définit le jeu de résultats sur lequel le curseur itère.
Il peut s’agir de presque n’importe quelle instruction
SELECT
valide.
Par exemple :
c1 CURSOR FOR SELECT id, price FROM invoices;
Pour plus d’informations sur les curseurs (y compris des exemples complets), voir Travailler avec des curseurs.
Syntaxe de la déclaration RESULTSET¶
Utilisez la syntaxe suivante pour déclarer un RESULTSET.
<resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;
Où :
resultset_name
Le nom à donner au RESULTSET.
Le nom doit être unique dans le scope actuel.
Le nom doit suivre les règles de dénomination pour Identificateurs d’objet.
DEFAULT query
ou .:= query
Assigne la valeur de
query
à RESULTSET.
Pour plus d’informations sur RESULTSETs (y compris des exemples complets), voir Utilisation des RESULTSETs.
Syntaxe de déclaration d’exception¶
Utilisez la syntaxe suivante pour déclarer une exception.
<exception_name> EXCEPTION [ ( <exception_number> , '<exception_message>' ) ] ;
Où :
exception_name
Le nom à donner à l’exception.
exception_number
Un numéro pour identifier de façon unique l’exception. Le nombre doit être un entier compris entre -20000 et -20999. Le numéro ne doit pas être utilisé pour une autre exception qui existe en même temps.
Par défaut : -20000
exception_message
Un message pour décrire l’exception. Le message ne doit pas contenir de caractères guillemets doubles.
Valeur par défaut : chaîne vide.
Par exemple :
exception_could_not_create_table EXCEPTION (-20003, 'ERROR: Could not create table.');
Pour plus d’informations sur les exceptions (y compris des exemples complets), voir Traitement des exceptions.
Exemples¶
DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END;Remarque : si vous utilisez SnowSQL ou l”Classic Console, utilisez cet exemple à la place (voir Utilisation d’Exécution de scripts Snowflake dans SnowSQL et l”Classic Console) :
EXECUTE IMMEDIATE $$ DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END; $$ ;