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 SQL : Sélectionner tout - Visualiser dans une fenêtre à part
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 Shell : Sélectionner tout - Visualiser dans une fenêtre à part
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 !
Partager