Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Extrait les lignes à l’aide d’un curseur. Pour obtenir des informations sur la déclaration d’un curseur, consultez DECLARE.
FETCH extrait les lignes en fonction de la position actuelle du curseur. Lorsqu’un curseur est créé, il est placé avant la première ligne. Après une opération FETCH, le curseur est placé sur la dernière ligne récupérée. Si FETCH s’exécute hors de la fin des lignes disponibles, comme après une opération FETCH ALL, le curseur est placé à gauche après la dernière ligne.
FORWARD 0 extrait la ligne actuelle sans déplacer le curseur ; autrement dit, extrait la ligne plus récemment extraite. Si le curseur est placé avant la première ligne ou après la dernière ligne, aucune ligne n’est retournée.
Lorsque la première ligne d’un curseur est extraite, le jeu complet de résultats est matérialisé sur le nœud principal, en mémoire ou sur disque, si nécessaire. En raison de l’impact négatif potentiel de l’utilisation de curseurs avec des ensembles de résultats volumineux sur les performances, nous recommandons autant que possible l’utilisation d’approches alternatives. Pour plus d'informations, consultez Considérations relatives aux performances lors de l’utilisation de curseurs.
Pour plus d’informations, consultez DECLARE, CLOSE.
Syntaxe
FETCH [ NEXT | ALL | {FORWARD [ count | ALL ] } ] FROM cursor
Paramètres
- NEXT
-
Récupère la ligne suivante. Il s’agit de l’option par défaut.
- ALL
-
Récupère toutes les lignes restantes. (Identique à FORWARD ALL.) ALL n’est pas pris en charge pour les clusters à un seul nœud.
- FORWARD [ nombre | ALL ]
-
Extrait les nombre lignes suivantes, ou toutes les lignes restantes.
FORWARD 0
extrait la ligne actuelle. Pour les clusters à un seul nœud, la valeur maximale de count est1000
. FORWARD ALL n’est pas pris en charge pour les clusters à un seul nœud. - curseur
-
Nom du nouveau schéma.
Exemple FETCH
L’exemple suivant déclare un curseur nommé LOLLAPALOOZA pour sélectionner les informations sur les ventes pour l’événement Lollapalooza, puis récupère les lignes de l’ensemble de résultats à l’aide du curseur :
-- 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;