Как инициализировать таблицу переменных {TABLE}%ROWTYPE?
У меня есть varray, определенный как:
declare
TYPE tnr_l IS VARRAY(30) of lve%ROWTYPE;
Я хочу, чтобы этот varray был инициализирован извлечением из базы данных:
select * into tnr_l from lve where type = 'TNR' order by value;
Но это не так с:
.ORA-06550: line 6, column 23:
PLS-00321: expression 'TNR_L' is inappropriate as the left hand side of an
assignment statement
Как я могу сделать эту работу?
1 ответ
Решение
Вам нужно объявить переменную типа tnr_l, а затем вам нужно использовать bulk collect
в выберите как этот пример:
declare
type t_dept is varray(100) of dept%rowtype;
l_dept t_dept;
begin
select * bulk collect into l_dept from dept;
for i in 1..l_dept.count loop
dbms_output.put_line(l_dept(i).dname);
end loop;
end;