Как инициализировать таблицу переменных {TABLE}% ROWTYPE? - PullRequest
2 голосов
/ 08 ноября 2010

У меня есть переменная, определенная как:

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 Ответ

8 голосов
/ 08 ноября 2010

Вам нужно объявить переменную типа tnr_l, а затем вам нужно использовать bulk collect в select, как в этом примере:

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;
...