FETCH - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

FETCH

Ruft Zeilen mittels eines Cursors ab. Weitere Informationen zum Deklarieren eines Cursors finden Sie unter DECLARE.

FETCHruft Zeilen auf der Grundlage der aktuellen Position im Cursor ab. Wenn ein Cursor erstellt wird, wird er vor der ersten Zeile positioniert. Nach a befindet FETCH sich der Cursor auf der letzten abgerufenen Zeile. Wenn FETCH der Cursor vom Ende der verfügbaren Zeilen abweicht, z. B. nach einer Zeile FETCHALL, bleibt der Cursor hinter der letzten Zeile stehen.

FORWARD0 ruft die aktuelle Zeile ab, ohne den Cursor zu bewegen. Das heißt, es wird die zuletzt abgerufene Zeile abgerufen. Wenn sich der Cursor vor der ersten oder nach der letzten Zeile befindet, wird keine Zeile zurückgegeben.

Wenn die erste Zeile eines Cursors abgerufen wird, wird der gesamte Ergebnissatz auf dem Führungsknoten im Arbeitsspeicher oder auf der Festplatte umgesetzt, wenn nötig. Aufgrund der potenziellen negativen Auswirkungen der Verwendung von Cursors mit großen Ergebnissätzen wird empfohlen, alternative Ansätze anzuwenden, wann immer möglich. Weitere Informationen finden Sie unter Überlegungen in Bezug auf die Leistung bei Verwendung von Cursors.

Weitere Informationen finden Sie unter DECLARE, CLOSE.

Syntax

FETCH [ NEXT | ALL | {FORWARD [ count | ALL ] } ] FROM cursor

Parameter

NEXT

Ruft die nächste Zeile ab. Dies ist die Standardeinstellung.

ALL

Ruft alle verbleibenden Zeilen ab. (Dasselbe wie.) FORWARD ALL ALLwird für Cluster mit einem Knoten nicht unterstützt.

FORWARD[Anzahl |ALL]

Holt die nächste Zahl von Zeilen oder alle erbleibenden Zeilen. FORWARD 0 holt die aktuelle Zeile. Im Fall von Einzelknoten-Clustern ist der maximal zulässige Wert für „count“ 1000. FORWARDALLwird für Cluster mit einem Knoten nicht unterstützt.

cursor

Der Name des neuen Cursors.

FETCHBeispiel

Im folgenden Beispiel wird ein Cursor deklariert, der so benannt istLOLLAPALOOZA, dass er Verkaufsinformationen für das Lollapalooza-Ereignis auswählt, und ruft dann mithilfe des Cursors Zeilen aus der Ergebnismenge ab:

-- Begin a transaction begin; -- Declare a cursor declare lollapalooza cursor for select eventname, starttime, pricepaid/qtysold as costperticket, qtysold from sales, event where sales.eventid = event.eventid and eventname='Lollapalooza'; -- Fetch the first 5 rows in the cursor lollapalooza: fetch forward 5 from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-05-01 19:00:00 | 92.00000000 | 3 Lollapalooza | 2008-11-15 15:00:00 | 222.00000000 | 2 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 3 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 4 Lollapalooza | 2008-04-17 15:00:00 | 239.00000000 | 1 (5 rows) -- Fetch the next row: fetch next from lollapalooza; eventname | starttime | costperticket | qtysold --------------+---------------------+---------------+--------- Lollapalooza | 2008-10-06 14:00:00 | 114.00000000 | 2 -- Close the cursor and end the transaction: close lollapalooza; commit;