早上,开发人员提出一个问题,执行下面的语句时,提示600错误:
update db_testresultinfo_old set f_depreagentoutlay = 0, f_depamtreagentoutlay = 0
where f_inputdate2 between to_date('2010-03-01 00:00:01', 'yyyy-mm-dd hh24:mi:ss') and
to_date('2010-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
ORA-00600: 内部错误代码, 参数: [6749], [3], [18051454], [18], [], [], [], []
where f_inputdate2 between to_date('2010-03-01 00:00:01', 'yyyy-mm-dd hh24:mi:ss') and
to_date('2010-03-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
ORA-00600: 内部错误代码, 参数: [6749], [3], [18051454], [18], [], [], [], []
这个表的记录有600多万,实际更新大概100多万记录。
请教群里高手,提出一个删除统计信息的方法。
现象:报错ORA-00600: 内部错误代码,参数: [], [], [], [], [], [], [], []
以DBA身份登录执行:
execute dbms_stats.delete_schema_stats('ZJLM_USER');
ZJLM_USER 是你报错的那个表所属的oracle用户
execute dbms_stats.delete_schema_stats('ZJLM_USER');
ZJLM_USER 是你报错的那个表所属的oracle用户
我没有敢做SCHEMA的删除,重新搜集了下该表的统计信息 ,再次更新时就成功了。以下是执行步骤:
SQL> exec dbms_stats.gather_table_stats(ownname => 'KMS',tabname=>'DB_TESTRESULTINFO_OLD');
PL/SQL procedure successfully completed
PL/SQL procedure successfully completed
SQL> update db_testresultinfo_old
set f_depreagentoutlay = 0,
f_depamtreagentoutlay = 0
where f_inputdate2
where f_inputdate2
between to_date('2010-03-01 00:00:01', 'yyyy-mm-dd hh24:mi:ss')
and to_date('2010-03-01 13:59:59', 'yyyy-mm-dd hh24:mi:ss')
2287 rows updated
转载于:https://blog.51cto.com/gaoshan/338438