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 27 28 29 30 31 32 33 34 35 36 37
|
PROCEDURE MAJ_DATA_MAELIS IS
CURSOR liste_tables_cursor IS
SELECT table_name
FROM user_tables;
req_delete VARCHAR2(4000);
req_insert VARCHAR2(4000);
err_msg VARCHAR2(80):=null;
err_num NUMBER:=0;
BEGIN
FOR liste_tables_rec IN liste_tables_cursor
LOOP
req_delete := 'TRUNCATE TABLE ' || liste_tables_rec.table_name;
req_insert := 'INSERT INTO ' || liste_tables_rec.table_name || ' SELECT * FROM NOM_SCHEMA.'|| liste_tables_rec.table_name || '@BASE';
BEGIN
EXECUTE IMMEDIATE req_delete;
commit;
SET TRANSACTION USE ROLLBACK SEGMENT BIGRBS;
EXECUTE IMMEDIATE req_insert;
commit;
SET TRANSACTION USE ROLLBACK SEGMENT BIGRBS;
DBMS_OUTPUT.put_line('la table ' || liste_tables_rec.table_name || ' a été mise à jour');
EXCEPTION
WHEN OTHERS THEN
err_num := SQLCODE;
err_msg := SUBSTR(SQLERRM, 1, 80);
dbms_output.put_line( 'Err num = ' || to_char(err_num) );
dbms_output.put_line( 'Err msg = ' || err_msg );
END;
END LOOP;
END maj_data_maelis; |
Partager