Sybase proc armazenado chamado de isql no AIX: como lidar com código de retorno
-
23-08-2019 - |
Pergunta
Eu tenho um trabalho em lotes AIX que usos isql para executar um procedimento armazenado no Sybase. O procedimento armazenado está retornando um código de erro sob certas condições. Eu gostaria que isql aconteceu que código de retorno para o script AIX.
Can I captura o código de retorno do proc armazenados dentro isql, ou eu tenho que escrever um arquivo de algum tipo de saída e ter meu cheque roteiro AIX isso?
Aqui está o que os olhares de comando isql gosto. Ele está correndo dentro de um script shell Korn.
isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
Solução
Se bem me lembro, o $?
está definido para o valor de retorno de comando.
Adicionar algo como isto após a linha EOF
:
if [[ $? != 0 ]]; then
print "stored procedure failed"
exit
fi
Outras dicas
É isso que você queria alcançar?
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"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow