내가이 개 패키지를 가지고 있다고 가정하자 패키지 A?프로 시저가 호출 된 패키지를 알 수 있습니까? A와 B 패키지 A를, 난 패키지 B의 프로 시저를 호출</p> <p></p> packcage의 B의 절차에 <p>, 그것에서 호출 된 해당 절차를 알 수 있습니다 :
이 정보를 제공해 주셔서 감사합니다. 그것은 매우 유익했습니다.
감사합니다.
내가이 개 패키지를 가지고 있다고 가정하자 패키지 A?프로 시저가 호출 된 패키지를 알 수 있습니까? A와 B 패키지 A를, 난 패키지 B의 프로 시저를 호출</p> <p></p> packcage의 B의 절차에 <p>, 그것에서 호출 된 해당 절차를 알 수 있습니다 :
이 정보를 제공해 주셔서 감사합니다. 그것은 매우 유익했습니다.
감사합니다.
당신은 오라클에서 호출 된 프로 시저 who_called_me
을 사용할 수 있습니다 더 나은 제안 아마 패키지 OWA_UTIL
http://download.oracle.com/docs/cd/B25221_04/web.1013/b25598/psutil.htm#i1006497
DBMS_UTILITY.FORMAT_CALL_STACK()
함수가 반환 한 텍스트를 구문 분석 할 수 있습니다.
편집 : 일부 테스트 패키지를 만들려고했습니다. XX_TESTB 패키지에 다른 프로 시저를 호출하는 프로 시저가 있습니다. XX_TESTB의 프로시 저는 DBMS_UTILITY.FORMAT_CALL_STACK()
에 의해 리턴 된 텍스트를 출력하기 만하면됩니다. 결과 텍스트 :
----- PL/SQL Call Stack -----
object line object
handle number name
416fe0e68 5 package body APPS.XX_TESTB
415182f10 5 package body APPS.XX_TESTA
416e9b448 3 anonymous block
매개 변수로 이름을 전달할 수 있습니까?
사용 ....
$$PLSQL_UNIT
에서 : http://awads.net/wp/2006/08/03/heres-a-quick-way-to-get-the-line-number-in-plsql
[email protected]> CREATE OR REPLACE PACKAGE my_pkg
2 IS
3 PROCEDURE my_proc;
4 END;
5/
Package created.
[email protected]> CREATE OR REPLACE PACKAGE BODY my_pkg
2 IS
3 PROCEDURE my_proc
4 IS
5 BEGIN
6 DBMS_OUTPUT.put_line ('Line number: ' || $$plsql_line);
7 DBMS_OUTPUT.put_line ( 'Unit: '
8 || $$plsql_unit
9 );
10 END;
11 END;
12/
Package body created.
[email protected]> exec my_pkg.my_proc;
Line number: 6
Unit: MY_PKG
링크 주셔서 감사합니다. 많은 흥미로운 기사가 있습니다! 내 RSS 리더에 추가 :-) –
공급 보다 내. 나는 $$ PLSQL_UNIT이 정말 유용하다고 생각하지만, 상대적으로 새로운 것이기 때문에 잘 알려져 있지 않다고 생각한다. – cagcowboy