请教:如何在PL/SQL dev中调试带有输入参数为数组的存储过程

yanka_sky 2011-05-23 09:00:02
各位大侠:下面是我再网上找的一个存储过程的代码,我想知道再PL/SQL dev中怎样输入这个数组参数的值,然后进行调试,单个参数(非数组参数的我会)
先创建一个数组类型:
1 SQL> CREATE OR REPLACE type numTestArray as table of number;
2 /

类型已创建。
创建存储过程如下:
1 SQL> create or replace procedure test_numArray(p_varlist in numTestArray) AS
2 begin
3 for x in 1..p_varlist.count loop
4 dbms_output.put_line('p_varlist('||x||')='||p_varlist(x));
5 end loop;
6 end;
7 /

过程已创建。

上面两步都成功了,但是在PL/SQL dev中打开这个存储过程准备调试时,窗口右下角:“变量 类型 值 ”怎样输入几个测试的数字给变量p_varlist ?要是输入参数为单个参数(非数组参数)我会调试。郁闷,找了好久都没有发现解决方法,请大侠帮帮我,教一下我方法,感激不尽!先行谢过了!
...全文
799 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gyz123123123123 2011-11-11
  • 打赏
  • 举报
回复
123123
yanka_sky 2011-05-24
  • 打赏
  • 举报
回复
首先感谢一楼的大哥!你的帖子写的很详细,并且我按照你的方法测试通过了!非常感谢!同时2楼的大哥给的建议也很好,谢谢你们!
304的的哥 2011-05-23
  • 打赏
  • 举报
回复

declare
-- Non-scalar parameters require additional processing
p_varlist numtestarray:=numTestArray(1,2,3,4,56,7);--也可以在定义时初始化
begin
-- Call the procedure
test_numarray(p_varlist => p_varlist);
end;

tangren 2011-05-23
  • 打赏
  • 举报
回复
进入test窗口后,参数列表的上部窗口自动生成了调用该过程的块,
并且自动生成了一个变量:p_varlist,但是没有赋值。如下:

declare
-- Non-scalar parameters require additional processing
p_varlist numtestarray;
begin
-- Call the procedure
test_numarray(p_varlist => p_varlist);
end;

手动在上面增加一行初始化入口参数就行了。如下:

declare
-- Non-scalar parameters require additional processing
p_varlist numtestarray;
begin
p_varlist := numtestarray(1,2,3,4,5);--增加初始化入参
-- Call the procedure
test_numarray(p_varlist => p_varlist);
end;

然后,就跟调试普通存储过程一样调试就行了。

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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