2

我定义了一个可变数组,如下所示:

declare
    TYPE tnr_l IS VARRAY(30) of lve%ROWTYPE;

我希望通过从数据库中获取来初始化这个变量:

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

我怎样才能使这项工作?

4

1 回答 1

8

您需要声明一个 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;
于 2010-11-08T10:30:58.967 回答