用包有什么不好,包的管理,移植,授权都比过程好

解决方案 »

  1.   

    若不用包,可用对象类型,但比较笨的方法。
    创建对象类型:
    create or replace type myobjectype as object (x int,y date,z varchar2(50));
    /
    create or replace type mytabletype as table of myobjectype;
    /
    创建过程:
    create or replace procedure name_pro(p_type out mytabletype)
    as
    begin
    for i in (select * from a where id>=tableid)  loop
          p_type.extend;
          p_type(p_type.count) := myobjectype(i.id,i.doctime,i.name);
          exit when i.id = 62;
    end loop;  
    end;
    /
    还没测试,自已试试吧。
      

  2.   

    谢谢诸位!提此问题的目的是想在CB中调用,原认为存储过程的控件只能调用过程,没有想到,其实也能够调用包中的过程的。 在包中写好了过程,就不需要在外面另外再写了。