使用ORA-22324和ORA-21700更改Oracle中的类型失败

时间:2010-06-22 10:45:45

标签: oracle plsql

我正在尝试将属性添加到Oracle 10.2.0.4数据库中已存在的对象类型。 架构有效,并且在运行以下语句之前一切正常:

ALTER TYPE sometype ADD ATTRIBUTE (somefield varchar(14))
CASCADE INCLUDING TABLE DATA
/
SHOW ERRORS

使用ORA-22324和ORA-21700进行更改失败。 之后,依赖于某种类型的大多数模式对象都是无效的。 对它们进行全部编译,将模式恢复到工作状态。

有人看到过那种错误吗?

2 个答案:

答案 0 :(得分:1)

ORA-22324是“更改类型有编译错误”,ORA-21700是“对象不存在或标记为删除”。听起来你的类型的主体可能会引用已删除的内容。

我希望这会有所帮助。

答案 1 :(得分:0)

我知道这已经过时了,但我的回答可能会帮助后来发现这一点的人。

确保断开并重新连接,如果你得到这个,它可能会解决你的问题。

但是,在更改类型之前了解oracle Dev指南很重要(特别是当您使用类型的表时):

以下是oracle 9i的对象开发指南: http://docs.oracle.com/cd/B10501_01/appdev.920/a96594.pdf

还指出重新编译身体 http://database-geek.com/2005/05/26/oracle-objects-types-and-collections-part-3/

EXEC DBMS_UTILITY.compile_schema(schema =>'SOME_SCHEMA'); - 如果您的更改中有很多内容变得无效,也可以为您提供有用的结果。