我正在尝试将属性添加到Oracle 10.2.0.4数据库中已存在的对象类型。 架构有效,并且在运行以下语句之前一切正常:
ALTER TYPE sometype ADD ATTRIBUTE (somefield varchar(14))
CASCADE INCLUDING TABLE DATA
/
SHOW ERRORS
使用ORA-22324和ORA-21700进行更改失败。 之后,依赖于某种类型的大多数模式对象都是无效的。 对它们进行全部编译,将模式恢复到工作状态。
有人看到过那种错误吗?
答案 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'); - 如果您的更改中有很多内容变得无效,也可以为您提供有用的结果。