有一个存储过程,想返回一个二维数组,不知道可不可以实现?能否给出具体的例子?

解决方案 »

  1.   

    QL> Create Type ta is varray(10) of integer;
      2  
      3  /Type createdSQL> Create type tb is varray(10) of ta;
      2  /Type created
    ----------------------------------------------------------
    create or replace procedure sp_testarray(p out tb) is 
      -- Local variables here
      i integer;
      j integer;
      t tb:=tb();
      tt ta:=ta();
    begin
      -- Test statements here
      for i in 1..10 loop      
        for j in 1..10 loop  
          tt.extend;   
          tt(j):=j;
        end loop;
        t.extend;
        t(i):=tt;  
        tt.delete;
      end loop;
      
      for i in 1..10 loop
        for j in 1..10 loop
         dbms_output.put_line(to_char(t(i)(j)));
        end loop;
      end loop;
      p:=t;
    end sp_testarray;
    ---------------------------------------------
    可以测试.遗憾的是不是灵活的。
      

  2.   

    sql>set serveroutput onsql>declare 
         p tb:=tb();
           begin
         sp_testarray(p);
        end;
        /
    sql>....
      

  3.   

    能不能定义一个record,然后再返回?
      

  4.   

    可以用type定义你想要返回的类型