如果在一个过程中得到上级调用它的过程的信息

上一篇 / 下一篇  2007-03-12 00:00:00 / 个人分类:开发

pub上有网友问到了这个问题,也有人回答了这个问题,自己做个测试,权当做个记录吧。

创建被调用的过程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四个参数分别定义了调用者的所有者、名称、在第几行调用、调用者的程序类型。

当没有人调用的时候,则数据在匿名块的第一行被调用的信息。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

我的存档

数据统计

  • 访问量: 2298
  • 日志数: 250
  • 建立时间: 2008-01-01
  • 更新时间: 2008-01-01

RSS订阅

Open Toolbar