procédure stockée Sybase appelé à partir isql sous AIX: comment traiter le code de retour
-
23-08-2019 - |
Question
J'ai un traitement par lots AIX que isql utilise pour exécuter une procédure stockée dans Sybase. La procédure stockée retourne un code d'erreur dans certaines conditions. Je voudrais pour isql passer ce code de retour au script AIX.
Puis-je saisir le code de retour de procédure stockée isql, ou dois-je écrire un fichier de sortie de quelque sorte et que mon script AIX vérifier que?
Voici ce que la commande isql ressemble. Il est en cours d'exécution dans un script shell Korn.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
La solution
Si je me souviens bien, le $?
est réglé sur la valeur de retour de commande.
Ajouter quelque chose comme ça après la ligne EOF
:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
Autres conseils
Est-ce ce que vous vouliez réaliser?
isql -D$database -S$server -U$userId -P$password << EOF | grep RETVAL | awk -F"=" '{print $2}' | read value
declare @retval int
EXEC @retval = MY_STORED_PROC $AN_INPUT_PARAMETER
SELECT "RETVAL=" + convert(varchar, @retval)
go
EOF
echo "Procedure returned: $value"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow