Utilisation d'un type tableau dans une procedure PL/SQL
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:
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:
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