Bonjour à tous,
Je lance la procédure suivante :
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 ?
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;
Merci d'avance pour votre aide.
Partager