【发布时间】:2020-05-26 14:52:15
【问题描述】:
我正在尝试借助嵌套表开发大学数据库,我已经成功创建了所有其他所需的嵌套表并插入了数据,但是在将数据插入标记表时,我面临数据类型不一致的问题。
代码:
CREATE OR REPLACE TYPE MODULE_MARKS;
CREATE OR REPLACE TYPE MM_NT_TYPE AS TABLE OF REF MODULE_MARKS;
CREATE OR REPLACE TYPE MODULE_MARKS AS OBJECT
(
MODULE REF MODULE_T, MARKS_OBTAINED, TOTAL_MARKS, STATUS
)
CREATE TABLE MARK_TAB
(
student ref student_t,
modules_marks mm_nt_type
)
我能够正确插入对学生的引用,但我想将数据插入到 module_marks 中。
试过了:
INSERT INTO MARK_TAB VALUES((SELECT REF(S) FROM STUDENT_TAB S WHERE
S.S_ID=1),
MM_NT_TYPE( MODULE_MARKS_T((SELECT REF (M) FROM MODULE_TAB M WHERE
M.MODULE_ID =1),
90,100,'PASS')));
这会导致错误 ORA-00932。 MODULE_MARKS_T 的预期引用 GOT MODULE_MARKS_T。
【问题讨论】:
-
student 和 modules_marks 的数据类型是什么。您从另一个对象中选择了数据类型,但实际的数据类型是什么。检查您用于插入的数据类型和现有数据类型
标签: sql oracle nested-table