1
是否有任何方式将一组记录作为Oracle过程的参数INOUT
传递?将记录收集为INOUT参数
是否有任何方式将一组记录作为Oracle过程的参数INOUT
传递?将记录收集为INOUT参数
当然。声明收集
create package pkg_coll
as
type emp_tbl is table of emp%rowtype;
end;
/
然后你可以使用集合类型作为参数传递给一个过程
create or replace procedure proc_coll(p_emps in out pkg_coll.emp_tbl)
as
begin
for i in 1 .. p_emps.count
loop
dbms_output.put_line(p_emps(i).empno);
end loop;
p_emps(1).ename := 'CAVE';
end;
然后你就可以调用
SQL> declare
2 l_emps pkg_coll.emp_tbl;
3 begin
4 select *
5 bulk collect into l_emps
6 from emp;
7 proc_coll(l_emps);
8 end;
9/
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934
PL/SQL procedure successfully completed.
谢谢。这是工作! – user1087287 2012-02-21 06:15:33