Sybase stored procedure chiamata da isql su AIX: come gestire il codice di ritorno
-
23-08-2019 - |
Domanda
Ho un lavoro AIX batch che ISQL utilizza per eseguire una stored procedure in Sybase. La stored procedure restituisce un codice di errore in determinate condizioni. Vorrei per isql di passare il codice di ritorno allo script AIX.
Posso catturare il codice di ritorno del proc memorizzato all'interno di isql, o devo scrivere un file di output di qualche tipo e hanno il mio script AIX controllare che?
Ecco quello che il comando isql assomiglia. E 'in esecuzione all'interno di uno script di shell Korn.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
Soluzione
Se non ricordo male, il $?
è impostato il valore di comando di ritorno.
Aggiungere qualcosa di simile dopo la riga EOF
:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
Altri suggerimenti
E 'questo che si voleva ottenere?
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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow