通过who_called_me可以获取上级存储过程的名字,但是有什么办法可以获取参数名和值么?
比如下面的程序
procedure a(x in varchar2,y in integer)
begin
  dbms_output.putline(b);
end;function b as varchar2
  o varchar2(30);
  n varchar2(30);
  l number;
  t varchar2(30);
begin
  OWA_UTIL.who_called_me(o, n, l, t);
  return '调用的过程是:'||n||';参数为:'||xxxx;
end;调用 a('iii',32);
希望得到的输出结果是
  调用的过程是a;参数为:x-iii,y-32过程名字a可以获得,参数怎么获得呢?

解决方案 »

  1.   

    你给函数B定义2个参数,然后过程A调用B的时候,把A的两个参数放进B的参数里。随便写个例子:
    通过who_called_me可以获取上级存储过程的名字,但是有什么办法可以获取参数名和值么?
    比如下面的程序
    procedure a(x in varchar2,y in integer)
    begin
      dbms_output.putline(b(x,y));
    end;function b(x in varchar2,y in integer) as varchar2
      o varchar2(30);
      n varchar2(30);
      l number;
      t varchar2(30);
    begin
      OWA_UTIL.who_called_me(o, n, l, t);
      return '调用的过程是:'||n||';参数为:'||x||‘,'||y;
    end;
      

  2.   

    因为b不是只有a调用,可能还有c(x,y,z),d(p)调用,参数都不一样,无法通过传递参数
    再者我不但要获得参数的值,还要获得参数的名称,
    输出参数x=多少,y=多少 这样
    另外本过程自己能否这样获得到呢?
      

  3.   

    OWA_UTIL.who_called_me  受教了,找这个需求找好久了!