2015-02-03 3 views
1

안녕하세요, 내 쉘 스크립트에서 PL SQL 프로 시저를 실행하려고 노력하고있어 반환 값 (out value)을 얻지 만 작동하지 않습니다. 아무도 내가 뭘 잘못하고 있다고 조언 할 수 있습니까? 여기에 내가 가진 무엇 :쉘 스크립트에서 PL SQL 프로 시저 실행

output="$(sqlplus -S user/[email protected]//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 
+0

' 그것을 정적 인 것으로 대체하는 것; 그것을 1 또는 무엇인가 설정하고 그런 식으로 출력을 얻었는지 확인해보고 문제가 패키지에 있다고 말할 수 있습니다. – mmmmmpie

+1

"작동하지 않음"을 정의하십시오! 오류 메시지는 무엇입니까? –

+0

답장을 보내 주셔서 감사합니다. 실제로 작동하도록했습니다. 나는 나의 해결책으로 내 자신의 질문에 대답 할 것이다. – Soyf

답변

2

나는 마침내 아래의 스크립트 작업있어 시행 착오의 긴 하루 후 :`PKG.procedure (v_return를) 주석에 의해 단순히이 있습니다

#!/bin/ksh 

CODE=`sqlplus -S $SCHEMA/[email protected]//$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 $?