Oracle 11g XE "alter table drop column" 导致 ORA-00600

Posted

技术标签:

【中文标题】Oracle 11g XE "alter table drop column" 导致 ORA-00600【英文标题】:Oracle 11g XE "alter table drop column" causes ORA-00600 【发布时间】:2014-07-23 21:45:09 【问题描述】:

在 Oracle 11g XE 上,我运行了以下语句:

alter table le_customer drop column profile_id;

然后从表上的一个简单视图中删除等效列引用并成功重新编译该视图。

然后我运行了一些引用该视图的 PL/SQL,我开始得到 ​​p>

ORA-00600: internal error code, arguments: [kkdcsaccc2], [], [], [], [], [], [], [], [], [], [], [] 

(但是,如果我将 PL/SQL 更改为直接引用表,那么代码就可以工作)

我已经删除并重新创建了视图,并且还成功运行了“alter table le_customer move ...”,但是错误继续发生,并且 100% 一致。

我已关闭数据库并针对数据库 .dbf 文件运行 dbv - 未报告任何错误。

我在虚拟机上运行,​​所以我回滚了代码并从视图中删除了 profile_id 列引用,而没有从 le_customer 表中物理删除列......然后一切都与我的代码一起正常工作。然后我运行了 alter table le_customer drop column profile_id; ORA-00600 再次立即再次发生。

我再次将虚拟机回滚,然后运行

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 ;”引起的声明,我不知道如何解决它。

因此,如果有人看到此内容或对测试/解决方法有任何想法,我将非常感谢您能够分享的任何信息 - 谢谢!

【问题讨论】:

可能重复:***.com/questions/8923091/… @Andrew - 谢谢,我已经看到了这个问题,但是有一个主要区别在于可以解决这个问题,而我看不出如何解决失败的“alter table x drop y 列”声明。 ORA-00600 也是一个广谱错误,另一个问题中的关键“kkpoffoc”与我的不同,即“kkdcsaccc2” 听起来像一个错误。您需要向 Oracle 开票。 ORA-0600 错误是 Oracle 内部错误。我的文档集说要联系 oracle 以解决 600 系列错误。 @OldProgrammer:我不认为你可以打开与Oracle XE相关的票 【参考方案1】:

我之前的结论是不正确的......因为我再次看到了完全相同的问题,这次是在 2 个完全独立的数据库构建上。然而,问题表与之前保持一致(即 le_customer)并且:

    两个数据库上的架构相同 相同的查询行为在两个数据库上是一致的 无论是否简单,查询行为都是一致的 查询了视图或基表 不存在 where 子句时查询始终成功 只要使用简单的 where 子句,查询就会始终失败 已添加即。 “其中 id = 123” 无论 where 子句内容如何,​​都会发生故障,即。 “在哪里 code = 'ABC'" 也失败了 “where 子句”继续导致查询失败,即使在所有索引都已 从桌子上掉下来

...我开始从表中一一删除约束,每次都重新运行查询

在删除以下约束后,查询开始工作!

constraint le_cus_bus_case_chk check(allow_case_boo = 'F'
                                     or
                                     case_master_template is not null
                                    )

对以下 2 列的一个相当无害的约束,其中很明显 case_master_template 是“行外”存储的 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 类型列的约束“ 出现。我将从表中删除约束。

我希望这对某人有用。

【讨论】:

以上是关于Oracle 11g XE "alter table drop column" 导致 ORA-00600的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 11g XE release2安装与指导

Oracle 11g XE 试用记录

PLSQL Developer12连接远程Oracle xe 11g

安装 Oracle 数据库 11g 时检查 Oracle XE 服务实例失败我该怎么办

在 Oracle 11g XE 上更改 NLS 字符集参数

如何从 Oracle 11g XE 导出“数据库”并将其导入 Oracle 10.2?