[英]Oracle 11g XE “alter table drop column” causes ORA-00600
在Oracle 11g XE上,我运行了以下语句:
alter table le_customer drop column profile_id;
然后从表上的简单视图中删除等效的列引用,并成功重新编译视图。
然后我运行了一些引用该视图的PL / SQL,我开始得到它
ORA-00600: internal error code, arguments: [kkdcsaccc2], [], [], [], [], [], [], [], [], [], [], []
(但是,如果我将PL / SQL更改为直接引用表,则代码可以正常工作)
我已经删除并重新创建了视图,并且还成功运行了“alter table le_customer move ...”,但是错误继续以100%的一致性发生。
我关闭了数据库并对数据库.dbf文件运行dbv - 没有报告错误。
我在VM上运行,所以我回滚了代码并从视图中删除了profile_id列引用,而没有从le_customer表中物理删除列...然后一切都与我的代码一起正常工作。 然后我运行了alter table le_customer drop column profile_id; 再次立即重新发生ORA-00600。
我再次将VM推回然后跑了
alter table le_customer rename column profile_id to donald_duck;
.......然后测试,一切正常。
然后我跑了
alter table le_customer drop column donald_duck;
...然后再次测试并立即获得ORA-00600
。
所以我非常肯定这个问题是由“alter table le_customer drop column”引起的。 声明,我迷失了如何解决它。
所以,如果有人看到这个或有关于测试/解决方法的任何想法,我将非常感谢你能分享的任何信息 - 谢谢!
我之前的结论是错误的...因为我再次看到了完全相同的问题,这次是在2个完全独立的数据库构建上。 然而问题表保持与以前相同(即le_customer)和:
...我开始从表中逐个删除约束,每次都重新运行查询
在删除以下约束时,查询开始工作!
constraint le_cus_bus_case_chk check(allow_case_boo = 'F'
or
case_master_template is not null
)
对以下2列的一个相当无害的约束,其中明显的case_master_template是存储在“out out row”中的xmltype
...
allow_case_boo varchar2(1)
case_master_template xmltype
...
)
xmltype column case_master_template store as clob (disable storage in row)
要确认此约束是问题,在显示相同行为的其他数据库部署中 - 并且所有索引和约束仍然存在于表上 - 我仅删除了上述约束。 问题立即消失,查询开始可靠地运行。
然后我删除了除此之外的表中的所有约束,索引和外键,并且查询继续可靠地显示ORA-00600。 在最后删除此约束时,ORA-00600从视图和表查询中消失(无论where子句存在)。
因此,虽然我没有内部工作的可见性,但我确实认为我已经确定了罪魁祸首,并且可以相当自信地向其他人提供建议,以便首先检查在ORA-00600“kkdcsaccc2”出现时可能存在的xmltype类型列的约束。 我将从表中删除约束。
我希望这证明对某人有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.