2012-09-12 3 views
-2

여러 프로 시저, 함수, 레코드 등을 포함하는 실제로 복잡한 Oracle 패키지가 있습니다. BI Admin 도구의 실제 테이블로 저장 프로 시저에 액세스하는 것이지만이 도구는 Oracle 저장 프로 시저를 테이블로 정의하는 것을 지원하지 않으며 SP를 함수로 다시 제안합니다.함수에서 Oracle 저장 프로 시저를 호출하는 방법

대신 바퀴 (패키지)를 다시 발명하십시오. 저장 프로 시저를 호출하고 BI 관리 도구에서 해당 함수에 액세스하는 새로운 Oracle Function을 만드는 것을 고려했습니다. 내 질문은 무엇입니까?

"Oracle 기능에서 Oracle 패키지를 호출 할 수 있습니까? - 예일 경우"

은이 질문에 대답에서 단념 알면서하지 BI를하지 못하게 - 그것이

+0

귀하의 질문을 이해할 수 있는지 잘 모르겠습니다. 패키지가 실행 가능하지 않기 때문에 아무 것도 패키지를 호출 할 수 없습니다. 일부 패키지는 실행 가능한 다른 객체의 콜렉션입니다. 함수는 패키지에 정의 된 프로 시저 또는 함수를 확실히 호출 할 수 있습니다. 패키지의 프로 시저가 호출 함수의 순도 수준에 영향을주는 무언가를 수행하는 경우 (즉 프로 시저가 데이터베이스 상태를 수정하는 경우) 함수는 SQL에서 호출 할 수 없습니다 (PL/SQL에서 호출 가능 상태를 유지하지만). PL/SQL에 물리적 테이블로 액세스하는 데 이것이 어떻게 도움이되는지는 알 수 없습니다. –

+1

오라클에는'FUNCTION'과'PROCEDURE'와'PACKAGE'가 있습니다. 'PACKAGE'는 하나 이상의'FUNCTIONS' 및/또는'PROCEDURES'를 포함 할 수 있습니다. 'PACKAGE'에 문제가없는'FUNCTION' 또는'PROCEDURE'를 호출하는'FUNCTION'을 작성할 수 있습니다. 그러나 귀하의 질문에 명확하지 않은 부분은 저장 프로 시저를 테이블로 액세스하는 것을 의미합니다. BI 도구의 스크린 샷 (어떤 도구를 사용하고 있습니까?) 등의 예를 들려 줄 수 있습니까? – hol

답변

0

가 REF_CURSOR 또는 유사한 무언가를 반환하여 절차 있습니까 ;-) 질문에서 저를 멈추지 않았다? 그렇다면 커서를 가져 와서 결과를 파이프하는 파이프 라인 테이블 함수를 쉽게 작성할 수 있습니다. 참조 : http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/tuning.htm#i52954

그렇지 않은 경우 수행하려는 작업에 대해 구체적으로 설명하십시오.

관련 문제