Soy*_*oyf 2 unix bash shell plsql
嗨,我正在尝试从我的 Shell 脚本执行 PL SQL 过程并获取返回值(输出值),但它不起作用。谁能建议我做错了什么?这是我所拥有的:
output="$(sqlplus -S user/pw@//ip:1521/db <<ENDOFSQL
set serveroutput on;
DECLARE
v_return PLS_INTEGER;
BEGIN
PKG.Procedure(v_return);
DBMS_OUTPUT.PUT_LINE(v_return);
END;
exit;
ENDOFSQL)"
echo $output
Run Code Online (Sandbox Code Playgroud)
经过一整天的反复试验,我终于用下面的脚本让它工作了:
#!/bin/ksh
CODE=`sqlplus -S $SCHEMA/$PW@//$IP_PORT/$DB << EOM
Set timing on
Set serveroutput on
Whenever sqlerror exit failure;
Whenever oserror exit failure;
declare
v_return number;
begin
PKG.Procedure(v_return);
end;
/
EOM`
if [ $? != 0 ]
then
echo "process failed."
exit 1
fi
exit $?
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12763 次 |
最近记录: |