创建被调用的过程T1:
CREATE OR REPLACE PROCEDURE T1 IS
L_OWNER VARCHAR2(100);
L_NAME VARCHAR2(100);
L_LINENO NUMBER;
L_CALLER_T VARCHAR2(100);
BEGIN
OWA_UTIL.WHO_CALLED_ME(OWNER => L_OWNER,
NAME => L_NAME,
LINENO => L_LINENO,
CALLER_T => L_CALLER_T);
DBMS_OUTPUT.PUT_LINE('t1');
DBMS_OUTPUT.PUT_LINE(L_OWNER || ' : ' || L_NAME || ' : ' || L_LINENO ||
' : ' || L_CALLER_T);
END T1;
创建调用T1的过程T2:
CREATE OR REPLACE PROCEDURE T2 IS
BEGIN
T1;
END T2;
测试:
SQL> set serveroutput on;
SQL> exec t1;
t1
: : 1 : ANONYMOUS BLOCK
PL/SQL procedure successfully completed
SQL> exec t2;
t1
TEST : T2 : 3 : PROCEDURE
PL/SQL procedure successfully completed
SQL>
可以看出OWNER 、NAME、LINENO、CALLER_T四个参数分别定义了调用者的所有者、名称、在第几行调用、调用者的程序类型。
当没有人调用的时候,则数据在匿名块的第一行被调用的信息。