Bonjour à tous,

Je lance la procédure suivante :

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
CREATE OR REPLACE PROCEDURE odshr.Script_chargement_ODS_1 IS
 
CURSOR c_table IS
SELECT vsource.view_name, tcible.table_name
FROM SYS.ALL_TABLES tcible, 
SYS.ALL_VIEWS vsource
 WHERE tcible.OWNER = 'ODSHR'
and vsource.OWNER = 'ODSHR'
and tcible.table_name like 'HRA_%'
and vsource.view_name like 'ODS_%'
and rtrim(substr(tcible.table_name,4,25)) = rtrim(substr(vsource.view_name,4,25)) ;
i c_table%ROWTYPE;
BEGIN
 
FOR i IN c_table
LOOP
EXECUTE IMMEDIATE 'truncate table ODSHR.' || i.table_name ;
EXECUTE IMMEDIATE 'Insert into ODSHR.' || i.table_name || ' select * from ODSHR.' || i.view_name ;
END LOOP;
END;
Comment faire pour qu'elle ne s'arrête pas (et continue de traiter toutes les tables du périmètre) si je rencontre une erreur sur une table ?

Merci d'avance pour votre aide.