日期:2014-05-16  浏览次数:21159 次

如何获取存储过程参数
通过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可以获得,参数怎么获得呢?

------解决方案--------------------
你给函数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;


------解决方案--------------------
OWA_UTIL.who_called_me  受教了,找这个需求找好久了!