2010-12-27 6 views
1

질문 outParameter 아웃을 캡처 :전화 PL/SQL 저장 쉘 스크립트에서 절차와

나는 절차 callServlet 저장 PL/SQL이 (VARCHAR2에 wire_type을 VARCHAR2을 out_flag). 이 저장 프로 시저에서 나는 서블릿을 호출해야합니다. 처음에는이 callServlet을 실행하는 쉘 스크립트가 쉘에서 매개 변수를 전달하여 proc를 저장해야합니다. 저장 프로 시저에서 out_flag9Out 매개 변수 값을 캡처해야하고 저장된 out_flag 값을 계산해야합니다. out_flagg의 값을 확인하려면 success 또는 not_success를 사용해야합니다.

당신은 친절하게 나를 아래 일

  1. 어떻게이 및 out 매개 변수를 전달하여 쉘 스크립트 (callServlet) 저장 프로 시저를 호출 할 수 있습니다를 알려 주시기 바랍니다 수 있습니까?
  2. callServlet 저장 프로 시저에서 보낸 out 매개 변수를 어떻게 caputre 수 있습니까?
  3. 상태가 성공했는지 여부를 알기 위해 callServlet의 out 매개 변수를 어떻게 평가할 수 있습니까?

미리 감사드립니다.

답변

1

먼저 callServlet.sql라는 SQL의 * 플러스 스크립트 작성 :

flag=`sqlplus user/[email protected] @callServlet.sql "xy"` 

:

var l_flag varchar2(100) 

begin 
    callServlet('&1', :l_flag); 
end; 
/

print l_flag 

그런 다음 역 따옴표를 사용하여 플러스 쉘 스크립트에서 SQL 스크립트를 사용하는 SQL * 전화를 out 매개 변수는 쉘 변수 플래그에 지정됩니다. "xy"은 wire_type 매개 변수의 값입니다.

+0

나는 쉘 스크립트를 실행했을 때 아무런 결과도없이 시작되는 것을 끝내지 않고있다. 콘솔에서 돌릴 때 (Ctrl-Z) 사용해야한다. 또한 이것을 사용하기 위해 flag ='sqlplus user/[email protected].sql "xy"'문제가 생겼습니다. 우리는 이미 flag ='sqlplus user/secret @ DATABASE_B를 특정 데이터베이스에 연결하기 위해 다음과 같은 방법으로이 명령을 사용해야합니다. flag ='sqlplus user/secret @ DATABASE_B @ callServlet.sql "xy"', 나는 thisnk하지 않습니다. 이것은 작동 할 것입니다 –

+0

죄송하지만 쉘 스크립트에 실수가있었습니다. 그리고 당신은 저를 잘못된 말로 정확하게 지적했습니다. 나는 지금 그것을 고쳤다. – Codo

관련 문제