【发布时间】:2014-03-17 20:08:53
【问题描述】:
我在捕获存储过程的返回码时遇到问题。 我正在使用 isql 语句在我的 korn shell 脚本中调用 sybase 存储过程,如下所述。
isql -U ${APPLID} -S{SERVER}> ${sqlMsg} << EOF
use ${DATABASE}
go
exec stored_procedure
go
EOF
returncode=$?
如果存储过程内部发生错误,按照下面的方法是无法捕获的。
if [ $returncode -ne 0 ]
then
print "failed"
fi
我尝试在存储过程中使用 return 语句,例如
return (1)
但这并没有给我预期的结果。当我回显返回码时,它回显为 0,即使在将状态返回为 1 之后也是如此。 在 sql 日志中看到返回状态为 1。
【问题讨论】:
-
@@error存储最后一条语句的错误。如果没有错误,则返回 0,如果发生错误,则返回特定的错误号。
标签: shell stored-procedures sybase isql