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
Était-ce utile?

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
scroll top