Wie eine SQL-Cursor zu öffnen

Obwohl die declare cursor SQL-Anweisung gibt an, welche Zeilen im Cursor zu schließen, ist es nicht wirklich etwas zu verursachen, da passieren ERKLÄREN ist nur eine Erklärung und nicht um eine ausführbare Anweisung. Das ÖFFNEN Aussage bringt den Cursor in die Existenz. Er hat die folgende Form:

OPEN Cursorname -

So öffnen Sie den Cursor in die SORTIEREN NACH Klausel, verwenden Sie die folgenden Schritte aus:

ERKLÄREN Einnahmen CURSOR FORSELECT Modell, Einheiten, Preis, Einheiten * Preis AS ExtPriceFROM TRANSDETAILORDER nach Modell, ExtPrice DESC -OPEN Einnahmen -

Sie können keine Zeilen aus einem Cursor zu holen, bis Sie den Cursor öffnen. Wenn Sie einen Cursor öffnen, verwiesen die Werte der Variablen in der declare cursor Statement festgelegt, wie alle aktuellen Datum-Zeit-Funktionen. Betrachten Sie das folgende Beispiel für SQL in einem Host-Sprachprogramm eingebettet:

EXEC SQL DECLARE C1 CURSOR FOR SELECT * FROM ORDERSWHERE ORDERS.Customer =: Nameand DueDate lt; CURRENT_DATE -Name: = 'Acme Co'- // Eine Host-Sprache statementEXEC SQL OPEN C1-NAME: =' Omega Inc .'- // Ein anderer Host-Anweisung ... EXEC SQL UPDATE ORDERS SET DueDate = CURRENT_DATE-

Das ÖFFNEN Anweisung legt den Wert aller Variablen in der declare cursor referenziert und behebt auch einen Wert für alle aktuellen Datum-Zeit-Funktionen. Als Ergebnis wird die zweite Zuordnung zu dem Namen Variable (Name: = 'Omega Inc.') hat keine Wirkung auf den Zeilen, die den Cursor abruft. (Dieser Wert von NAME verwendet wird, die Nächster Zeit, die Sie öffnen C1.)

Und selbst wenn die ÖFFNEN Anweisung wird eine Minute vor Mitternacht ausgeführt und die AKTUALISIEREN Anweisung wird eine Minute nach Mitternacht ausgeführt, der Wert AKTUELLES DATUM in dem AKTUALISIEREN Anweisung ist, den Wert dieser Funktion zu der Zeit der ÖFFNEN Anweisung ausgeführt - auch wenn declare cursor verweist nicht auf das Datum-Zeit-Funktion.

Menü