Hello,
Est-ce que quelqu'un sait comment récupérer le code retour d'un script sql oracle sorti en erreur.
exemple en c-shell, je voudrais connaitre le $status d'un sqlplus qui sortirait en erreur ORA***.
D'avance merci,
Vincent
Hello,
Est-ce que quelqu'un sait comment récupérer le code retour d'un script sql oracle sorti en erreur.
exemple en c-shell, je voudrais connaitre le $status d'un sqlplus qui sortirait en erreur ORA***.
D'avance merci,
Vincent
Dans le script SQL, il faut prévoir un
et récupérer le code erreur dans une variable shell
Code : Sélectionner tout - Visualiser dans une fenêtre à part whenever sqlerror exit sql.sqlcode rollback
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part integer ERROR_CODE=$?
merci pour la réponse...
en fait, ce qui m'interesserait, c'est d'avoir la liste des valeurs que peut prendre ce "ERROR_CODE". et si possible, sans chercher à la main toutes les valeurs que je peux obtenir (je me vois mal réussir à générer toutes les erreurs Oracle possibles...) ;o)
re- d'avance merci
vincent
bah ERROR_CODE peut prendre toutes les valeurs possibles dans Oracle... c'est le code d'erreur qui est joint aux messages...
Qu'est ce que tu cherches exactement ?
ok, voila le test que je fais, par exemple... (en c-shell)
et voila le retour que j'ai dans ma console :
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 #!/bin/csh -f sqlplus bla/bla << FIN WHENEVER SQLERROR EXIT SQL.SQLCODE select * from daul; exit FIN set code_ret=$status echo "*************" echo $code_ret exit
moi, ce que je cherche, c'est une liste des valeurs que peut prendre ma variable code_ret.
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
21 SQL*Plus: Release 8.1.7.0.0 - Production on Me Aou 25 10:30:38 2004 (c) Copyright 2000 Oracle Corporation. All rights reserved. Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production With the Partitioning option JServer Release 8.1.7.4.0 - 64bit Production SQL> SQL> SQL> select * from daul * ERROR at line 1: ORA-00942: table or view does not exist Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production With the Partitioning option JServer Release 8.1.7.4.0 - 64bit Production ************* 174
je gère des warnings à côté et je voudrais pas que mon traitement continue si une erreur Oracle survient. je voudrais donc utiliser comme code de sortie pour mes warnings des nombres qui ne sont pas utilisés par Oracle... et je ne mets pas la main sur une liste de ces valeurs.
suis-je plus clair ?
merci,
vincent
Le probleme vient de l'exit CODE
le shell ne recupere une erreur que sur 1 octet soit 256 valeures Possibles
tu remarquera que 942 modulo 256 = 174 (CQFD)
Personellement je fait sytématiquement ceci :Envoyé par vinz_07
Whenever SQLERROR EXIT FAILURE ROLLBACK;
et je teste le code retour != 0 pour savoir si c'est OK ou KO
Après si c'est KO : rien ne t'empeche de faire un truc qui analyse la log de ta requete avec un grep "ORA-" par exemple
Partager