我有一个使用ISQL在Sybase执行存储过程的AIX批处理作业。存储过程将返回在一定条件下的错误代码。我想为isql来该返回码传递给AIX脚本。

我可以捕获ISQL内的存储过程的返回码,或做我必须写一些类型的输出文件,并有我的AIX脚本检查?

下面就是isql命令看起来像。它的运行Korn Shell脚本中。

isql -D$database -S$server -U$userId -P$password << EOF
EXEC MY_STORED_PROC $AN_INPUT_PARAMETER
go
EOF
有帮助吗?

解决方案

如果我记错$?被设置为命令的返回值。 加入这样的事情EOF行之后:


if [[ $? != 0 ]]; then
    print "stored procedure failed"
    exit
fi

其他提示

这是你想要达到什么样的?

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"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top