OPEN (Exécution de scripts Snowflake)

Ouvre un curseur .

Pour plus d’informations sur les curseurs, voir Travailler avec des curseurs.

Note

Cette construction Exécution de scripts Snowflake n’est valable qu’à l’intérieur d’un bloc Exécution de scripts Snowflake.

Voir aussi

DECLARE, FETCH, CLOSE

Syntaxe

OPEN <cursor_name> [ USING (bind_variable_1 [, bind_variable_2 ...] ) ] ;
Copy

Où :

cursor_name

Nom du curseur.

bind_variable

Une variable bind contient une valeur à utiliser dans la définition de la requête du curseur (par exemple, dans une clause WHERE).

Un exemple de liaison est inclus dans les exemples présentés plus loin dans cette section.

Notes sur l’utilisation

  • Le jeu de résultats d’une requête peut être considéré comme un ensemble de lignes. En interne, l’ouverture d’un curseur exécute la requête, lit les lignes et positionne un pointeur interne sur la première des lignes.

  • Comme pour toute requête SQL, si la définition de la requête ne contient pas de ORDERBY au niveau le plus externe, le jeu de résultats n’a pas d’ordre défini. Lorsque le jeu de résultats du curseur est créé, son ordre persiste jusqu’à ce que le curseur soit fermé. Cependant, le fait de redéclarer ou de rouvrir le curseur peut produire les lignes dans un ordre différent.

  • De même, si un curseur est fermé, puis que la ou les tables sous-jacentes sont mises à jour avant sa réouverture, le jeu de résultats peut également changer.

Exemples

DECLARE
    c1 CURSOR FOR SELECT price FROM invoices;
BEGIN
    OPEN c1;
    ...
Copy

L’exemple suivant montre comment lier une variable lors de l’ouverture d’un curseur :

DECLARE
    price_to_search_for FLOAT;
    price_count INTEGER;
    c2 CURSOR FOR SELECT COUNT(*) FROM invoices WHERE price = ?;
BEGIN
    price_to_search_for := 11.11;
    OPEN c2 USING (price_to_search_for);
Copy

Pour un exemple plus complet de l’utilisation d’un curseur, voir l’exemple d’introduction au curseur.