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

时间:2014-07-23 21:45:09

标签: sql oracle oracle11g

在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引起的;"声明,我迷失了如何解决它。

所以,如果有人看到这个或有关于测试/解决方法的任何想法,我将非常感谢你能分享的任何信息 - 谢谢!

1 个答案:

答案 0 :(得分:3)

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

  1. 两个数据库上的模式相同
  2. 相同的查询行为在两个数据库
  3. 上都是一致的
  4. 无论是否简单,查询行为都是一致的 查询视图或基表
  5. 当没有where子句存在时,查询一直成功
  6. 一旦简单的where子句,查询一直失败 添加即。 "其中id = 123"
  7. 无论where子句内容如何,​​都会发生故障。 "其中 代码=' ABC'"
  8. 也失败了
  9. " where子句"即使在所有索引之后仍继续导致查询失败 从表中删除
  10. ...我开始逐一从表中删除约束,每次重新运行查询

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

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

    对以下2列的一个相当无害的约束,其中明显的case_master_template是存储的xmltype" out of row"

     ...
     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子句是否存在)。

    因此,虽然我没有内部工作的可见性,但我确实认为我已经确定了罪魁祸首,并且可以相当自信地向其他人提供建议,以便首先检查可能存在的xmltype类型列的约束ORA-00600&# 34; kkdcsaccc2"出现。我将从表中删除约束。

    我希望这证明对某人有用。