2013-07-26 3 views
0

나는 이것을 검색하여 많은 것을 시도 했으므로 다른 사람이 나를 도울 수 있기를 바랍니다.Groovy의 IN OUT 매개 변수 유형이있는 Oracle 프로 시저 호출

PROCEDURE g$_verify_password1_prd 
     (p_object IN  VARCHAR2, 
     p_version IN  VARCHAR2, 
     p_password IN OUT VARCHAR2, 
     p_role  OUT VARCHAR2) 

이 API 호출이며, 우리의 공급 업체에 의해 작성된 것입니다, 나는 그것을 수정할 수 없습니다하고 싶지 않은 :

나는 다음과 같은 매개 변수와 프로 시저를 포함하는 오라클 패키지가 있습니다. 내 문제는 p_password IN OUT 매개 변수입니다. Groovy에서 이것을 호출하는 구문은 무엇입니까? 이 질문에 대한 답변을 검색 할 때 Sql.inout을 발견했지만 받아 들일 수는 없습니다. 여기에 내 코드, 명심 나는 많은 것들을 시도하고 내가 중단 된 부분이 단순히하시기 바랍니다 : 나는 sql.inout을 제거하면

Caught: groovy.lang.MissingPropertyException: No such property: _SECURITY for class: banner.CheckSecurityService 
    at banner.CheckSecurityService.SecurityCheck(CheckSecurityService.groovy:49) 
    at banner.Hello2Service.main(Hello2Service.groovy:20) 

: 나는 계속과 유사한 오류가 발생할 수

sql.call '{call G$_SECURITY.G$_VERIFY_PASSWORD1_PRD(?, ?, ?, ?)}', 
    [$p_object, p_version, ${Sql.inout(Sql.VARCHAR(p_password))}, Sql.VARCHAR], 
    { p_password, p_rol -> 
     //p_password = p_pass 
     p_role = p_rol 
     println p_password 
     println p_rol 
    } 

변수를 전달하면 실행되지만 올바르지 않습니다. 오라클에서 암호 변수를 반환하지 않기 때문입니다. 성공적으로 IN OUT 매개 변수까지 문제없이이 패키지에서 수많은 프로 시저를 호출했습니다. 따라서 누락 된 간단한 것이 있어야합니다. 직접 데이터베이스

sql.call '{call G$_SECURITY.G$_VERIFY_PASSWORD1_PRD(?, ?, ?, ?)}', 
    [$p_object, p_version, Sql.inout(Sql.VARCHAR(p_password)), Sql.VARCHAR], 
    { p_password, p_rol -> 
     //p_password = p_pass 
     p_role = p_rol 
     println p_password 
     println p_rol 
    } 

* 테스트되지 않은 :

+0

오류를 보면 문제는'G $ _SECURITY', 특히'$ _SECURITY'입니다. '$'가 붙을 때'_SECURITY'는 변수로 취급됩니다. 응용 프로그램에서'''큰 따옴표를 사용하고 계시 겠지만 질문에'''사용했습니다. – dmahapatro

+0

그래서 "이 패키지에서 많은 절차를 성공적으로 호출했습니다"라고 말한 것입니다. :) 나는 이전에 $ 문제를 해결하고 그것을 수정했다. 만약 내가 sql.inout 제거하고 그냥 변수를 전달하고 $ 함께 동일한 패키지 이름을 사용하여 계속 오류가 사라지지만 예상대로 작동하지 않습니다. – tnichol

답변

2

는 SQL과 같은 뭔가가 될 수 있습니다.

+0

아, 위와 같은 사람이 당신이라는 것을 알지 못했습니다. 너무 많이 dmahapatro 고맙습니다! 잠시 후 혼란 스러웠던 많은 옵션을 시도해 보았습니다. 정답으로 표시해 드리겠습니다. 감사합니다. 도움이 많이. – tnichol

관련 문제