在提交这个问题之前,我已经检查了关于这个主题的 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 table dependents,因为在 Curse 对象类型本身中使用了 Teacher 类型。
修改继承的对象类型(本例中为教师)时,我应该将 FORCE 选项放在哪里?我尝试了几种方法,但都没有工作:
CREATE OR REPLACE TYPE Teacher FORCE UNDER SchoolMember
或者
CREATE OR REPLACE TYPE Teacher UNDER SchoolMember FORCE
但是 ORA-02303 错误仍然存在