各位大侠:下面是我再网上找的一个存储过程的代码,我想知道再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.   

    进入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;然后,就跟调试普通存储过程一样调试就行了。
      

  2.   


    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;