首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle11g XE "alter列“导致ORA-00600

Oracle11g XE "alter列“导致ORA-00600
EN

Stack Overflow用户
提问于 2014-07-23 21:45:09
回答 1查看 1.5K关注 0票数 3

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

代码语言:javascript
复制
alter table le_customer drop column profile_id;

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

然后我运行了一些引用视图的PL/SQL,并开始获得

代码语言:javascript
复制
ORA-00600: internal error code, arguments: [kkdcsaccc2], [], [], [], [], [], [], [], [], [], [], [] 

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

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

我关闭了数据库,并对数据库.dbf文件运行dbv -没有报告错误。

我在VM上运行,所以我回滚了代码,并从视图中删除了profile_id列引用,而没有物理地从le_customer表...and中删除该列,然后我的代码就可以正常工作了。然后,我运行alter le_customer drop列profile_id;一次又一次,ORA-00600再次发生。

我再次回滚VM,然后运行

代码语言:javascript
复制
alter table le_customer rename column profile_id to donald_duck;

.......then测试了,一切都很好。

然后我跑了

代码语言:javascript
复制
alter table le_customer drop column donald_duck;

...then再次测试,并立即得到ORA-00600

因此,我非常肯定这个问题是由"alter le_customer drop列“语句引起的,我对如何解决它感到迷茫。

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

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 19:55:16

我之前的结论是不正确的...as --我再次看到了同样的问题,这次是在两个完全独立的数据库构建上。然而,问题表仍然和以前一样。( le_customer)和:

  1. 这两个数据库的模式是相同的。
  2. 在这两个数据库上,相同的查询行为是一致的。
  3. 无论询问的是简单视图还是基表,查询行为都是一致的。
  4. 当不存在where子句时,查询始终成功。
  5. 只要添加了简单where子句,查询就始终失败。“其中id = 123”
  6. 无论where子句内容如何,都会发生失败。“其中代码= 'ABC'”也失败了
  7. 即使从表中删除了所有索引,"where子句“仍会导致查询失败。

...I开始逐个从表中删除约束,每次都重新运行查询。

删除下面的约束后,查询就开始工作了!

代码语言:javascript
复制
constraint le_cus_bus_case_chk check(allow_case_boo = 'F'
                                     or
                                     case_master_template is not null
                                    )

对以下2列的一个相当无害的约束,其中明显的case_master_template是存储在“行外”的row类型。

代码语言:javascript
复制
 ...
 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从视图和表查询中消失(不管哪个子句存在)。

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

我希望这对某人有用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24921601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档