FETCH - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

FETCH

Recupera le righe usando un cursore. Per informazioni sulla dichiarazione di un cursore, vedi DECLARE.

FETCH recupera le righe in base alla posizione corrente nel cursore. Quando viene creato un cursore, viene posizionato prima della prima riga. Dopo un FETCH, il cursore viene posizionato sull'ultima riga recuperata. Se FETCH va oltre la fine delle righe disponibili, ad esempio a seguito di un FETCH ALL, il cursore viene lasciato posizionato dopo l'ultima riga.

FORWARD 0 recupera la riga corrente senza spostare il cursore, ossia recupera la riga recuperata più recentemente. Se il cursore è posizionato prima della prima riga o dopo l'ultima riga, non viene restituita alcuna riga.

Quando viene recuperata la prima riga di un cursore, l'intero set di risultati si materializza sul nodo principale, in memoria o sul disco, se necessario. A causa del potenziale impatto negativo sulle prestazioni dell'utilizzo dei cursori con set di risultati di grandi dimensioni, si consiglia di utilizzare approcci alternativi laddove possibile. Per ulteriori informazioni, consulta Considerazioni sulle prestazioni quando si utilizzano i cursori.

Per ulteriori informazioni, consultare DECLARE, CLOSE.

Sintassi

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

Parametri

NEXT

Recupera la riga successiva. Questa è l'impostazione predefinita.

ALL

Recupera tutte le righe rimanenti. Equivalente a FORWARD ALL. ALL non è supportato per i cluster a nodo singolo.

FORWARD [ count | ALL ]

Recupera le successive numero righe o tutte le righe rimanenti. FORWARD 0 recupera la riga corrente. Per i cluster a nodo singolo, il valore massimo per il numero è 1000. FORWARD ALL non è supportato per i cluster a nodo singolo.

cursor

Nome del nuovo cursore.

Esempio di FETCH

L'esempio seguente dichiara un cursore denominato LOLLAPALOOZA per selezionare le informazioni di vendita per l'evento Lollapalooza e quindi recupera le righe dal set di risultati utilizzando il cursore:

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