Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何初始化{table}%ROWTYPE的varray表?_Oracle_Plsql_Initialization_Ora 06550_Varray - Fatal编程技术网

Oracle 如何初始化{table}%ROWTYPE的varray表?

Oracle 如何初始化{table}%ROWTYPE的varray表?,oracle,plsql,initialization,ora-06550,varray,Oracle,Plsql,Initialization,Ora 06550,Varray,我有一个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 a

我有一个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

如何实现这一点?

您需要声明一个类型为tnr\u l的变量,然后需要在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;