Bonjour,

J'ai besoin de passer à une procédure oracle le contenu d'un fichier (après contrôles) sous forme d'un tableau pour les insérer dans une table Oracle JOURNAL_OPERATION_CHANGE.
Pour ce faire j'ai créé le package suivant:

Entete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE PACKAGE CHMCR.PACK_CHM_CR
IS
   TYPE fichier_CR_TYPE IS TABLE OF JOURNAL_OPERATION_CHANGE%ROWTYPE index by binary_integer;
 
   --
   PROCEDURE CHARGEMENT_CR(
                                                              P_FICHIER_CR                       IN OUT FICHIER_CR_TYPE,
                                                              p_nom_fichier                        IN        VARCHAR2,                                         
                                                              p_id_chargement                       OUT NUMBER,
                                                              NMES                                        OUT NUMBER,
                                                              LMES                                        OUT VARCHAR2);
END PACK_CHM_CR;
/
Body:

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
CREATE OR REPLACE PACKAGE BODY CHMCR.PACK_CHM_CR
IS
 
PROCEDURE CHARGEMENT_CR(
                                                              P_FICHIER_CR                       IN OUT CHMCR.PACK_CHM_CR.FICHIER_CR_TYPE,
                                                              p_nom_fichier                        IN        VARCHAR2,                                     
                                                              p_id_chargement                       OUT NUMBER,
                                                              NMES                                        OUT NUMBER,
                                                              LMES                                        OUT VARCHAR2)
Is
  p_date_chargement  DATE := sysdate;
Begin
       p_id_chargement := CHMCR.CHMCR_SQ_ID_CHARGEMENT.NEXTVAL;
       for i in 1..P_FICHIER_CR.last loop
          P_FICHIER_CR.id_cr(i):= CHMCR.CHMCR_SQ_ID_CR.NEXTVAL;
          INSERT INTO JOURNAL_OPERATION_CHANGE
                                       (id_cr, id_chargement, num_autorisation, date_chargement)
                          VALUES  (P_FICHIER_CR.id_cr(i), P_id_chargement, P_FICHIER_CR.num_autorisation(i), p_date_chargement);
           i := i + 1;
       End loop;
       commit;
 
END;
 
END PACK_CHM_CR;
/
Probleme:

Lors de la compilation du body j'ai les messages d'erreur suivants:

[Error] PLS-00302 (15: 24): PLS-00302: Le composant 'ID_CR' doit être déclaré
[Error] PLS-00302 (15: 24): PLS-00302: Le composant 'num_autorisation' doit être déclaré

Je ne vois pas où est le probleme!
Quelqu'un peut m'aider SVP?

Mercii