日期:2014-05-17  浏览次数:20781 次

pl/sql 关于对象object的编程问题
小弟先前建立了对象类型object_type1,然后建立了一个对象表 create table table1 of object_type1,

然后在表中存入了很多对象数据,现在我想修改对象类型中的某个属性字段类型, 用create or replace 修改时 提示

ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型
 
然后我的想法是drop type object_type1 ,也无法删除,

最后我只好先drop table table1 后再drop type object_type1, 最后再重新 create or repacle 对象类型,但是我表中的数据都没了,
请龙虾们帮我解释下这当中的机制是怎么样,如何才能比较容易的改变对象类型中的属性类型,(当然我修改的类型是适合存储表中的数据的)

------解决方案--------------------
如果新建了这个对象的对象表, 肯定要先处理这个对象表才能修改对象吧

就跟你外键一样的,你要修改一个被引用表的被引用值,肯定是要先修改引用表的
------解决方案--------------------
探讨
我尝试先修改对象表中的属性,再修改对象的属性也是不成功的

------解决方案--------------------
Oracle里没有一项技术是“为了***体系的完整性,我们发明了***”的

所有Oracle的技术点都是为了某种需求而出现的,所以,如果你对一个技术没有需求,不用去钻研它。