Initialisation d'un type d'objet
Bonjour,
Version, OS : Oracle 8.1.7 sur Windows Xp
Message d'erreur :
Code:
ORA-06530: Référence à un élément composite non initialisé
Situation : Dans le cadre du développement d'un projet, je suis amené à developper un nombre assez important de procédure oracle. Pour éviter d'avoir des pages de déclaration de variable, j'ai voulu utilisé la création de type d'objet.
Code :
Code:
1 2 3 4 5
| SQL> CREATE OR REPLACE TYPE mvt_type AS OBJECT (ID1 number,CHDET1 varchar2 (25),CHEXPL1 varchar2 (25
),NUANIM1 varchar2 (25),DAENTR1 date ,CAENTR1 varchar2 (1),DASORT1 date,CASORT1 varchar2 (1));
2 /
Type créé. |
Code:
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 30 31 32 33 34 35 36
|
SQL> CREATE OR REPLACE PROCEDURE TEST
2 IS
3 BEGIN
4 -- Déclaration des variables
5 DECLARE
6 -- Curseur qui sélectionne pour détecter les mutations
7 TYPE Rcurs_Mut IS REF CURSOR;
8 curs_Mut Rcurs_Mut ;
9
10 LC$Requete Varchar2 (4000);
11
12 Mut1 mvt_type;
13
14 BEGIN
15
16 -- Curseur
17
18 OPEN curs_Mut FOR 'SELECT T1.MVT_ID FROM E_MVT T1';
19 LOOP
20 FETCH curs_Mut INTO Mut1.ID1;
21 EXIT WHEN curs_Mut%NOTFOUND; -- sortie lorsque le curseur ne ramène plus de ligne
22
23 DBMS_OUTPUT.PUT_LINE( 'ID : ' || Mut1.ID1 ) ;
24
25 END LOOP;
26 CLOSE curs_Mut;
27
28 COMMIT;
29
30 END;
31
32 END TEST;
33 /
Procédure créée. |
Code:
1 2 3 4 5 6 7 8
| SQL> exec TEST;
BEGIN TEST; END;
*
ERREUR à la ligne 1 :
ORA-06530: Référence à un élément composite non initialisé de
ORA-06512: à "IPGVALO_ADMIN.TEST", ligne 20
ORA-06512: à ligne 1 |
Constation : Dès que je n'utilise pas les types dans le curseur ma procédure marche sans problème.
Question : D'où vient cette erreur ? Ai-je oublié de déclarer ou de faire quelque chose pour pouvoir utiliser le type que j'ai crée ?
Merci d'avance de votre aide.