【发布时间】:2013-05-20 17:44:11
【问题描述】:
在提交此问题之前,我已经查看了有关此主题的 Oracle 文档: Using CREATE OR REPLACE TYPE with Type and Table Dependencies
但仍然没有解决我的错误。
我创建了一些对象类型:
CREATE OR REPLACE TYPE SchoolMember AS OBJECT (
...
) NOT FINAL;
/
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
...
);
/
CREATE OR REPLACE TYPE Curse AS OBJECT (
...
refTeacher REF Teacher,
...
);
/
假设我要修改 Teacher 对象类型添加构造函数:
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember (
...
CONSTRUCTOR FUNCTION Teacher(...) RETURN SELF AS RESULT
);
/
CREATE OR REPLACE TYPE BODY Teacher AS
...
END;
/
我得到 ORA-02303: cannot drop or replace a type with type or tabledependent,因为在 Curse 对象类型本身中使用了 Teacher 类型。
修改继承的对象类型(本例中为教师)时,我应该将 FORCE 选项放在哪里? 我尝试了几种方法,但都没有奏效:
CREATE OR REPLACE TYPE Teacher FORCE UNDER SchoolMember
或
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember FORCE
但是ORA-02303错误依然存在
【问题讨论】: