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;