各位大侠:下面是我再网上找的一个存储过程的代码,我想知道再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 ?要是输入参数为单个参数(非数组参数)我会调试。郁闷,找了好久都没有发现解决方法,请大侠帮帮我,教一下我方法,感激不尽!先行谢过了!
先创建一个数组类型:
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 ?要是输入参数为单个参数(非数组参数)我会调试。郁闷,找了好久都没有发现解决方法,请大侠帮帮我,教一下我方法,感激不尽!先行谢过了!
并且自动生成了一个变量: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;然后,就跟调试普通存储过程一样调试就行了。
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;