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.
Syntaxe¶
OPEN <cursor_name> [ USING (bind_variable_1 [, bind_variable_2 ...] ) ] ;
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;
...
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);
Pour un exemple plus complet de l’utilisation d’un curseur, voir l’exemple d’introduction au curseur.