Bonjour tout le monde,
Je lance SQL*Plus sous Windows depuis un fichier commande .bat avec en paramètre un fichier SQL.
Dans ce fichier SQL je provoque une erreur que j'arrive à afficher MAIS dans le .bat je n'arrive pas à avoir la valeur de l'erreur, le code retourné vaut 0.
Contenu du fichier .bat.
Contenu du fichier P:\ERROR02.sql.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
La table ZZZ_DDU a un seul champ ID NUMBER(2), je vais donc provoquer une erreur en insérant un number 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
Résultat de l'exécution du .bat.
On détecte bien l'erreur sur la valeur trop grande et on affiche bien le code erreur.
Quand je tape quit à l'invite SQL, voilà ce que j'ai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ERRORLEVEL vaut 0 et je pense que c'est le SQL.SQLCODE lié à l'opération "PL/SQL procedure successfully completed." et non pas celui lié à l'INSERT qui a échoué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Merci de me dire comment récupérer dans le .bat le code SQL.SQLCODE de l'erreur, soit -1438 dans cet exemple, car j'ai pas mal cherché sur le net et visiblement le problème n'est pas si trivial.

 

 
		
		 
         
 

 
			
			


 
   
 


 Lancer SQL*Plus sous Windows avec un .bat et récupérer le code erreur
 Lancer SQL*Plus sous Windows avec un .bat et récupérer le code erreur
				 Répondre avec citation
  Répondre avec citation
Partager