Declare
Type Dep_Rec_Typ Is Record ( Dep_Id Number
, DEP_NAME VARCHAR2(30)
);
Type Dep1 Is Table Of Dep_Rec_Typ;
Type Emp_Rec_Typ Is Record ( Employee_Id Number(6)
, First_Name Varchar2(20)
, Last_Name Varchar2(25)
, Email Varchar2(25)
, Dep_Id Number
);
Type Emp_Tt Is Table Of Emp_Rec_Typ;
Type Class_Grp Is Record ( Dep_Det Dep_Rec_Typ
, Emp_Dt Emp_Tt
);
Type Class_Tt Is Table Of Class_Grp;
class_det Class_Tt;
Begin
Select Dep_Id,Dep_Name
bulk collect into class_det.Dep_Det
From T_Dep;
end;
错误 错误报告: ORA-06550:第23行,第30栏: PLS-00302:组件' DEP_DET'必须申报 ORA-06550:第24行第2栏: PL / SQL:ORA-00904 ::无效的标识符 ORA-06550:第21行,第2栏: PL / SQL:忽略SQL语句 06550. 00000 - "行%s,列%s:\ n%s" *原因:通常是PL / SQL编译错误。 *操作:
答案 0 :(得分:0)
我不确定你是否可以使用那种结构的批量收集,但你可以轻松地进行循环。
cursor cu_t is
Select Dep_Id,Dep_Name
From T_Dep;
i number;
Begin
i := 1;
for rec in cu_t loop
class_det(i).Dep_Det := rec;
-- dbms_output.put_line( class_det(i).Dep_Det.Dep_Id||' '|| class_det(i).Dep_Det.Dep_name);
i := i + 1;
end loop;
end;