Pb sur un CURSOR explicite dans une boucle FOR LOOP
Bonjour,
J'aurais besoin d'aide sur une procédure que j'essaie de mettre en place :
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 procedure DataCompliance_Purge_Histo as
BEGIN
DECLARE
CURSOR id_cust Is
select * from customer cust where cust.customer_number in (43337,11211114);
c_limit integer := 1000;
TYPE id_cust_type IS TABLE OF id_cust%ROWTYPE INDEX BY BINARY_INTEGER;
id_cust_array id_cust_type;
BEGIN
EXECUTE IMMEDIATE 'truncate table PURGE_HISTO_DC';
FOR IDS IN id_cust LOOP
FETCH id_cust BULK COLLECT INTO id_cust_array LIMIT c_limit;
EXECUTE IMMEDIATE 'INSERT INTO PURGE_HISTO_DC (CUSTOMER_NUMBER,CREATION_DATE,EVENT_CONSENT,EVENT_CONSENT_NB,APPLICATION)
select cust.customer_number, cust.update_date, ''CUSTOMER'',cust.customer_number, ''SCR''
from customer cust
where cust.customer_number = :1'
USING IDS.customer_number;
END LOOP IDS;
end;
end; |
Lorsque je lance la procédure, j'obtiens une erreur oracle :
Code:
1 2 3
| ORA-01001: curseur non valide
ORA-06512: à "SIRIUSLMFR.DATACOMPLIANCE_PURGE_HISTO", ligne 23
ORA-06512: à ligne 2 |
Est-ce que vous pouvez m'aider à diagnostiquer le problème ?