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.

Siehe auch:

DECLARE, FETCH, CLOSE

Syntax

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

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

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

Ein ausführlicheres Beispiel für die Verwendung eines Cursors finden Sie in dem einführenden Cursor-Beispiel.