OPEN (Snowflake Scripting)¶
Öffnet einen Cursor.
Weitere Informationen zu Cursorn finden Sie unter Verwenden von Cursors.
Bemerkung
Dieses Snowflake Scripting-Konstrukt ist nur innerhalb eines Snowflake Scripting-Blocks gültig.
Syntax¶
OPEN <cursor_name> [ USING (bind_variable_1 [, bind_variable_2 ...] ) ] ;
Wobei:
cursor_name
Der Name des Cursors.
bind_variable
Eine Bindungsvariable enthält einen Wert, der in der Abfragedefinition des Cursors verwendet wird (z. B. in einer
WHERE
-Klausel).Ein Beispiel für die Bindung ist in den Beispielen weiter unten in diesem Abschnitt enthalten.
Nutzungshinweise¶
Das Resultset einer Abfrage kann man sich als eine Menge von Zeilen vorstellen. Intern führt das Öffnen eines Cursors die Abfrage aus, liest die Zeilen und positioniert einen internen Zeiger auf die erste Zeile.
Wenn die Abfragedefinition auf der äußersten Ebene kein ORDER BY enthält, hat das Resultset wie bei jeder SQL-Abfrage keine definierte Reihenfolge. Wenn das Resultset für den Cursor erstellt wird, bleibt ihre Reihenfolge so lange bestehen, bis der Cursor geschlossen wird. Bei einer erneuten Deklaration oder einem erneuten Öffnen des Cursors können die Zeilen jedoch in einer anderen Reihenfolge auftreten.
Wenn ein Cursor geschlossen wird und die zugrunde liegenden Tabellen aktualisiert werden, bevor er wieder geöffnet wird, kann sich auch das Resultset ändern.
Beispiele¶
DECLARE
c1 CURSOR FOR SELECT price FROM invoices;
BEGIN
OPEN c1;
...
Im Folgenden wird gezeigt, wie eine Variable beim Öffnen eines Cursors gebunden wird:
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);
Ein ausführlicheres Beispiel für die Verwendung eines Cursors finden Sie in dem einführenden Cursor-Beispiel.