1
Есть ли способ передать коллекцию записей как параметр INOUT
процедуры Oracle?Сбор записей как параметр INOUT
Есть ли способ передать коллекцию записей как параметр INOUT
процедуры Oracle?Сбор записей как параметр 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