关于 ORACLE 数据库报错:ORA-00600的解决方案
金蝶云社区-H4
H4
11人赞赏了该文章 14105次浏览 未经作者许可,禁止转载编辑于2016年04月28日 11:40:59
2016-3-23接到一个客户支持,客户在升级了我们的K3/Cloud 之后在执行处置单保存的时候发生了以下错误: 错误编号: BOS_ExecuteNonQuery 错误信息: ORA-00600: internal error code, arguments: [rwoirw: check ret val], [], [],[], [], [], [], [], [], [], [], [] Sql语句: INSERT INTOTM_FA_ASSERTDEPR (FNUMBER, FOWNERORGID, FASSETTYPEID (此处省略若干字) 在网上和我们金蝶论坛上搜索之后,找到了很多解决方案,不过大部分帖子方法都无法执行生效, 经过多方求助和网上查询 然后我得到了 解决方案: alter system set"_pred_move_around"=false alter session set"_pred_move_around"=false 在oracle里面,属性_pred_move_around 的全名应该是 predicate move around ORA-00600错误 是产生于 用select 创建临时表时候报错 个人理解就是 创建临时表时 数据的预移动(个人理解为分配空间,预插数据检测等)报错, 默认情况下,这个predicate move around 是开启的, alter system set "_pred_move_around"=false alter session set "_pred_move_around"=false
在会话和系统设置中关闭这个属性,则会跳过这一步,直接创建临时表 网上原文描述是: A CTAS (Create table as select) operation undergoing predicatemove around may fail during execution with an ORA-600 [rwoirw: check retval] Workaround Disable predicate move around before executing the CTAS. eg: alter session set "_pred_move_around"=FALSE;
在客户测试库执行之后就解决了, 事后重新再去网上搜索原因,发现这是oracle(11.2.0.4,11.2.0.3)两个版本存在的bug 官方给出的解决方案是打补丁 此次客户支持有两点经验分享给大家 1.碰到类似bug(ORA-00600) 执行解决方案下的两条语句即可 2.碰到解决不了的oracle问题(建议先在论坛找,后在网上找)