【问题标题】:How to call oracle function from a Korn Shell Script?如何从 Korn Shell 脚本调用 oracle 函数?
【发布时间】:2017-10-12 01:45:03
【问题描述】:

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

如何保留返回值?我应该将其写入文件吗?如果是这样,如何/在哪里

【问题讨论】:

    标签: oracle shell scripting ksh


    【解决方案1】:

    脚本 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 2017-09-02
      • 2014-11-05
      • 2019-12-29
      • 2019-01-19
      相关资源
      最近更新 更多