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
È stato utile?

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