1- Définition
définition du curseur :
DATA: gv_cursor TYPE cursor.
ouverture du curseur:
OPEN CURSOR WITH HOLD @gv_cursor FOR
SELECT champ1, champ2,...
FROM table
WHERE Condition
Boucle sur le curseur par paquet de gc_max
DO.FETCH NEXT CURSOR gv_cursor APPENDING CORRESPONDING FIELDS OF TABLE lt_table
/ FETCH NEXT CURSOR gv_cursor INTO CORRESPONDING FIELDS OF ls_struc.
PACKAGE SIZE gc_max.
Pour sortir de la boucle. IF sy-subrc NE 0.
CLOSE CURSOR gv_cursor. EXIT. ENDIF.
Faire son traitement.
Fin de boucle.
ENDDO.
2- A quoi ça sert...
L'instruction Open SQL OPEN CURSOR ouvre un curseur de base de données pour l'ensemble de résultats de la requête principale définie après FOR et lie une variable de curseur dbcur à ce curseur de base de données. L'ensemble de résultats de la requête principale peut être lu avec l'instruction FETCH.
Généralement on crée un OPEN CURSOR pour une lecture énorme de donnée, l'idée est de faire la lecture par paquet.
un exemple...
Le code source à copier coller
Steeven