2012-02-21 66 views

回答

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. 
+0

謝謝。這是工作! – user1087287 2012-02-21 06:15:33