Bonjour,

J'aurais besoin d'aide sur une procédure que j'essaie de mettre en place :

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 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?