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

LET

Syntaxe

DECLARE
  { <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
  [{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
Copy

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>]
Copy

Où :

variable_name

Nom de la variable. Le nom doit suivre les règles de dénomination pour Identificateurs d’objet.

type

Un type de données SQL.

DEFAULT expression ou . := expression

Affecte la valeur de l’expression expression à la variable. Si type et expression sont tous deux spécifiés, l’expression doit correspondre à un type de données qui correspond, ou peut être implicitement converti au type spécifié.

Par exemple :

profit NUMBER(38, 2) := 0;
Copy

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>
Copy

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;
Copy

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> ) ] ;
Copy

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>' ) ] ;
Copy

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.');
Copy

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;
Copy

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;
$$
;
Copy