Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Korn Shell脚本调用oracle函数?_Oracle_Shell_Scripting_Ksh - Fatal编程技术网

如何从Korn Shell脚本调用oracle函数?

如何从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

我有一个用户定义的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 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