本文主要是介绍oracle ORA-00600,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.问题描述
oracle 11g 使用IGNORE_ROW_ON_DUPKEY_INDEX异常,出现
SQL 错误: ORA-00600: 内部错误代码, 参数: [qerltcInsertSelectRop_bad_state], [], [], [], [], [], [], [], [], [], [], []
2.执行语句
insert /*+IGNORE_ROW_ON_DUPKEY_INDEX(表名01,表名01的唯一键的名)*/ into 表名01(id,name) select sys_guid(),name from 表名02;
3.测试经过
对sql语句执行发现,当“表名02”中的数据量在256一下时,不会出现问题,当其数据量超过1000条时,则出现ORA-00600错误,猜测结论:应该是某个变量超过了上限导致的错误,
Oracle的测试人员没有测试到这个新特性的bug
4.解决方案
使用 not exists来解决,代码如下:
insert into 表名01(id,name) select sys_guid(),a.name from 表名02 a where not exists(select 1 from 表名01 b where b.name = a.name );
这篇关于oracle ORA-00600的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!