DECLARE .. CURSOR
Deklarieren eines benannten Cursors
PSQL
DECLARE [VARIABLE] cursor_name [[NO] SCROLL] CURSOR FOR (<select>);
Argument | Beschreibung |
---|---|
cursorname |
Name des Cursors |
select |
|
Die DECLARE … CURSOR … FOR
-Anweisung bindet einen benannten Cursor an die Ergebnismenge, die in der SELECT
-Anweisung erhalten wurde, die in der FOR
-Klausel angegeben ist.Im Body-Code kann der Cursor geöffnet, zum zeilenweisen Durchlaufen der Ergebnismenge verwendet und geschlossen werden.Während der Cursor geöffnet ist, kann der Code positionierte Aktualisierungen und Löschungen durchführen, indem das WHERE CURRENT OF
in der UPDATE
- oder DELETE
-Anweisung verwendet wird.
Note
|
Syntaktisch ist die |
Vorwärts- und scrollbare Cursor
Der Cursor kann nur vorwärts (unidirektional) oder scrollbar sein.Die optionale Klausel SCROLL
macht den Cursor scrollbar, die NO SCROLL
Klausel nur vorwärts.Standardmäßig sind Cursor nur vorwärts.
Nur-Vorwärts-Cursor können sich – wie der Name schon sagt – im Datensatz nur vorwärts bewegen.Vorwärtscursor unterstützen nur die Anweisung FETCH [NEXT FROM]
, andere Befehle geben einen Fehler aus.Scrollbare Cursor ermöglichen es Ihnen, sich im Datensatz nicht nur vorwärts, sondern auch rückwärts zu bewegen, sowie N Positionen relativ zur aktuellen Position.
Warning
|
Scrollbare Cursor werden als temporäres Dataset materialisiert und verbrauchen daher zusätzlichen Speicher oder Festplattenspeicher. Verwenden Sie sie also nur, wenn Sie sie wirklich brauchen. |