"Gestion des exceptions" dans SQL PLUS
Bonjour,
Je fais appel à un script SQL au sein d'un script écrit en Shell, et selon l'endroit où l'erreur est rencontrée, j'aimerais retourner un message d'erreur variable. Schématiquement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| --script.sql
BEGIN
-- En cas d'erreur, retourner "Erreur pendant la requête 1" et sortir
select col1 from tab1 where condition1
-- En cas d'erreur, retourner "Erreur pendant la requête 2" et sortir
select col2 from tab2 where condition2
-- En cas d'erreur, retourner "Erreur pendant la requête 3" et sortir
select col3 from tab3 where condition3
END;
/
EXIT; |
Code:
1 2 3 4
| #script.ksh
sqlplus -s login/mdp@sid @script.sql
echo $MSG_ERR # Ici, le message d'erreur doit nous indiquer quelle requête a rencontré une erreur. |
Mon script SQL contenait à l'origine la ligne suivante en en-tête : WHENEVER SQLERROR EXIT FAILURE; mais ce n'est évidemment pas suffisant pour récupérer une description détaillée de l'erreur rencontrée pendant la requête.
Existe-t-il un mécanisme similaire aux exceptions C++ / Java pour SQL PLUS ? Est-il possible de retourner du texte en sortie de script ? Je vous remercie pour vos réponses !