【发布时间】:2018-04-05 10:48:03
【问题描述】:
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 编译错误。 *行动:
【问题讨论】:
-
你到底想在这里做什么。?为什么需要这么多类型、记录和集合? .如果您确定自己想要做什么,那么会有一个比您在这里尝试实现的更简单的解决方案。
-
我有一个多级集合,第一列是记录类型,第二列是表类型。类型 Class_Grp 是记录 ( Dep_Det Dep_Rec_Typ , Emp_Dt Emp_Tt );我必须将数据提取到上述类型的表中。能否请您告诉我如何编写相同的查询