J'ai essayé de mettre en pratique les cursor en faisant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
DECLARE 
 TYPE recordTypeFlux IS RECORD
 (
   libelle type_flux.libelle_type_flux%TYPE,
   code type_flux.code_type_flux%TYPE
 );
 
 CURSOR CurseurTypeFlux IS select libelle_type_flux, code_type_flux from type_flux;
 
 record recordTypeFlux%ROWTYPE;
 valeurcount INTEGER;
 
 
 BEGIN  
 
    OPEN CurseurTypeFlux;  
 
    LOOP  
       FETCH CurseurTypeFlux INTO record;
       EXIT WHEN CurseurTypeFlux%NOTFOUND;
 
       insert into tmp_type_flux(tf_libelle , tf_code) values(record.libelle,record.code);
 
    END LOOP;
 
    CLOSE CurseurTypeFlux;
 
 END;
Et je me retrouve avec une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 
PL/SQL: SQL Statement ignored
 
 
 record recordTypeFlux%ROWTYPE;
        *
ERREUR à la ligne 10 :
ORA-06550: Ligne 10, colonne 9 :
PLS-00310: avec l'attribut %ROWTYPE, 'RECORDTYPEFLUX' doit nommer un curseur ou une table ou une variable curseur
ORA-06550: Ligne 10, colonne 9 :
PL/SQL: Item ignored
ORA-06550: Ligne 19, colonne 35 :
PLS-00320: déclaration de type de cette expression est incomplète ou mal structurée
ORA-06550: Ligne 19, colonne 8 :
PL/SQL: SQL Statement ignored
ORA-06550: Ligne 22, colonne 78 :
PLS-00320: déclaration de type de cette expression est incomplète ou mal structurée
ORA-06550: Ligne 22, colonne 85 :
PL/SQL: ORA-00984: Un nom de colonne n'est pas autorisé ici
ORA-06550: Ligne 22, colonne 8 :
PL/SQL: SQL Statement ignored