有没有办法将记录集合作为Oracle过程的INOUT
参数传递?
答案 0 :(得分:2)
不确定。声明集合
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.