Bonjour,
je voudrais lancer 3 spool a la suite mais si un spool s'est mal passé je voudrais ne pas lancer les autres spool et logger le problème dans une table. Actuellement, j'ai un script principal, et 1 script par spool. Je ne sais pas ou recuperer mon erreur et faire mon update en consequence.
Je ne vous mets pas toutes mes tentativesj'ai essayé de mettre un update dans le script d'extract et si le spool se passe mal l'update en ok ne se fait pas mais le problème c'est que s'il y a un problème dans le script d'extract, il sort aussi de mon script principal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 --script principal @c:\extract_1.sql --controle si la table de log a été mise à jour avec un statut ok on continue --si ko on sort du script @c:\extract_2.sql @c:\extract_3.sql
La meilleure solution est-elle de passer par une procédure stockée (=> curseur, utl_file pour écrire mon fichier) pour mieux gérer les erreurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 --un script d'extract WHENEVER SQLERROR EXIT SQL.SQLCODE spool c:\toto.txt SELECT sysdate FROM dual; spool off --ici mon update mettant le staut à ok UPDATE TECH_STEP SET STATUS='OK' WHERE LOAD_NUMBER=1234;
Merci d'avance.
Partager