如何获取存储过程参数

ywjcool 2012-11-02 05:32:56
通过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可以获得,参数怎么获得呢?
...全文
327 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywjcool 2012-11-12
  • 打赏
  • 举报
回复
偌大的CSDN就没人了么。。。。哎。。。
ywjcool 2012-11-09
  • 打赏
  • 举报
回复
再顶一下,看来没人知道了
ywjcool 2012-11-06
  • 打赏
  • 举报
回复
顶一下,参数名称倒是找到方法可以自动输出了,但真的没有办法可以获取到参数变量的值么?
yu15tian 2012-11-04
  • 打赏
  • 举报
回复
OWA_UTIL.who_called_me 受教了,找这个需求找好久了!
ywjcool 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 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;

functi……
[/Quote]
因为b不是只有a调用,可能还有c(x,y,z),d(p)调用,参数都不一样,无法通过传递参数
再者我不但要获得参数的值,还要获得参数的名称,
输出参数x=多少,y=多少 这样
另外本过程自己能否这样获得到呢?
yf520gn 2012-11-02
  • 打赏
  • 举报
回复
你给函数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;

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧