我使用KSH调用SQL函数。根据函数的输出/返回值,我想做一些检查,但首先我需要访问该值。
这是我的KSH代码/功能:
# Call runSeriatimValuation Web Service
runSeriatimValuation() {
jobNum=$1
echo "Running Seriatim Valuation with ${jobNum}"
# Call web service Oracle stored procedure
${sqlplusCmd} << END_SQLPLUS
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
WHENEVER OSERROR EXIT 9 ROLLBACK;
DECLARE
v_Return INT;
BEGIN
v_Return := CALL_IPVFBJAVA_WEBSERVICE(${jobNum});
COMMIT;
END;
/
END_SQLPLUS
# This is the return value of the SQL command above if it was
# successfully execute or not. Its not related to v_Return.
errorCode=$?
# If error, handle and exit
if [ "${errorCode}" -ne "0" ] ; then
echo "Error (${errorCode}) occurred in runSeriatimValuation when calling procedure"
exitAgent 1
fi
# **** Here I would like to do my if/else checking on v_Return, How can I do that ???? *****
# how can I assign v_Return to a variable of type int and check the value of it.
return 0
}
谢谢 - 非常感谢您的帮助。
答案 0 :(得分:0)
您可以直接查看下面的返回类型,
if [ $? -eq 0 ]
then
##DO Something
else
##DO Something
fi
答案 1 :(得分:0)
您可以做的是设置变量并将其等同于sql命令。
例如:
var1=${sqlplusCmd} << END_SQLPLUS
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
WHENEVER OSERROR EXIT 9 ROLLBACK;
select CALL_IPVFBJAVA_WEBSERVICE(${jobNum}) from dual;
commit
exit;
END_SQLPLUS