如何从Korn Shell脚本调用oracle函数?
我有一个用户定义的oracle函数,它返回的数字可以大于255。我使用sql plus从shell脚本调用该函数,它返回值,例如296,但脚本接受它为40,这是因为脚本只能接受0-255之间的返回码 这就是我当前接收值的方式如何从Korn Shell脚本调用oracle函数?,oracle,shell,scripting,ksh,Oracle,Shell,Scripting,Ksh,我有一个用户定义的oracle函数,它返回的数字可以大于255。我使用sql plus从shell脚本调用该函数,它返回值,例如296,但脚本接受它为40,这是因为脚本只能接受0-255之间的返回码 这就是我当前接收值的方式 echo ${PASSWORD} | sqlplus ${USERNAME}@${SID} @$SQL getnumber.sql $PARAM> ${LOG} number=$? getnumber.sql已被删除 set serveroutput on siz
echo ${PASSWORD} | sqlplus ${USERNAME}@${SID} @$SQL getnumber.sql $PARAM> ${LOG}
number=$?
getnumber.sql已被删除
set serveroutput on size 100
VARIABLE rc NUMBER;
call function_get_number('&2') into :rc;
print rc;
exit :rc;
如何保存返回值?我应该把它写入一个文件吗?如果是,如何/在何处编写getnumber.sh脚本:
cat << EOF | sqlplus /S /nolog >${LOG}
conn ${USERNAME}/${PASSWORD}@${SID}
set serveroutput on size 100
VARIABLE rc NUMBER;
exec :rc := function_get_number('$PARAM');
SELECT 'RETVAL:' || :rc || ':' theval FROM dual;
EOF
RC=$( grep '^RETVAL:' ${LOG} | cutr -d":" -f2 )
echo $RC
cat${LOG}
conn${USERNAME}/${PASSWORD}@${SID}
将serveroutput设置为大小100
可变rc数;
exec:rc:=函数_get_number(“$PARAM”);
选择'RETVAL:'| |:rc | |':'theval FROM dual;
EOF
RC=$(grep'^RETVAL:'${LOG}| cutr-d:'-f2)
回音$RC