客户10.2.0.5 Oracle for AIX系统中,出现了这个ORA-600错误。
其中错误信息为:
Fri Nov 18 19:50:18 GMT+08:00 2011Errors IN file /oracle/admin/ccicwmix/udump/ccicwmix_ora_4915530.trc: ORA-00600: internal error code, arguments: [kokegPinLob1], [], [], [], [], [], [], [] |
对应的详细TRACE文件:
*** ACTION NAME:() 2011-11-18 19:50:18.033 *** MODULE NAME:(JDBC Thin Client) 2011-11-18 19:50:18.033 *** SERVICE NAME:(SYS$USERS) 2011-11-18 19:50:18.033 *** SESSION ID:(859.5) 2011-11-18 19:50:18.033 *** 2011-11-18 19:50:18.033 ksedmp: internal OR fatal error ORA-00600: internal error code, arguments: [kokegPinLob1], [], [], [], [], [], [], [] CURRENT SQL statement FOR this SESSION: SELECT * FROM ( SELECT task.jobid || '-' || task.stepid || '-' || task.taskid ID, task.code WBSNO, (SELECT wmsys.wm_concat(chr(10) || '(' || to_char(logdate,'yyyy-mm-dd') || ')[' || to_char(ACTUALHOURS,'fm990.099') || 'H]' || chr(13) || substr(remark,0,200)) ll.jobid=task.jobid AND ll.stepid=task.stepid AND ll.taskid=task.taskid AND logdate BETWEEN to_date(:1, 'yyyy-MM-dd') AND to_date(:2, 'yyyy-MM-dd')) detaildesc, ……)ORDER BY wbsno ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst+001c bl ksedst1 FFFFFFFFFFF7EA0 ? 104CCE8A4 ? ksedmp+0290 bl ksedst 104C251D0 ? ksfdmp+02d8 bl 03F397B4 kgerinv+00dc bl _ptrgl kgesinv+0020 bl kgerinv FFFFFFFFFFF8BD0 ? 000000000 ? FFFFFFFFFFF8A40 ? 44A420288A5DC2D8 ? 102A34300 ? ksesin+006c bl kgesinv 00000035B ? 50000000540A0 ? 700000188E6FAB0 ? 1108EFE30 ? FFFFFFFFFFF8AD0 ? kokegPinLob+00dc bl ksesin 104EE00D8 ? 000000000 ? 70000017FC8F488 ? 6BEC7DDB1 ? 000000000 ? 0F93A79B9 ? 09E377EB9 ? FFFFFFFFFFFFFFFA ? kokegCollectGarbage bl kokegPinLob 1104208E0 ? 000000011 ? FromScalar+004c 000000009 ? kokegGarbageCollect bl kokegCollectGarbage FFFFFFFFFFF8C90 ? 000000000 ? Rworo+008c FromScalar 35B00050000 ? 500018C54E1F0 ? rworupo+0648 bl kokegGarbageCollect 201000300000000 ? Rworo FFFFFFFF00001FE8 ? qersoFetch+0e18 bl 03F38D08 kpofrws+019c bl _ptrgl opifch2+13a4 bl 01FC83C0 opifch+003c bl opifch2 1100D4610 ? 000000000 ? FFFFFFFFFFF9BC0 ? opiodr+0b2c bl _ptrgl ttcpip+1020 bl _ptrgl opitsk+117c bl 01FC7F78 opiino+09d0 bl opitsk 0FFFFD670 ? 000000000 ? opiodr+0b2c bl _ptrgl opidrv+04a4 bl opiodr 3C102A9A18 ? 404C780A0 ? FFFFFFFFFFFF630 ? 0102A9A10 ? sou2o+0090 bl opidrv 3C02A2D6DC ? 4A0071248 ? FFFFFFFFFFFF630 ? opimai_real+01bc bl 01FC4434 main+0098 bl opimai_real 000000000 ? 000000000 ? __start+0070 bl main 000000000 ? 000000000 ? --------------------- Binary Stack Dump --------------------- |
根据报错的查询语句,detaildesc是一个子查询作为列出现在SELECT列表中。和应用程序的开发人员确认detaildesc这个列的类型是CLOB,而这个查询的聚集函数是wmsys.wm_concat。根据MOS上查询的结果,问题指向Bug 9824435 ORA-600 [kokegPinLob1] from aggregate returning a LOB。
确认受影响的版本包括10.2.0.5和11.2.0.2,这个bug在补丁集11.2.0.3和12.1中被解决。显然不可能通过补丁集来解决这个问题。可以在10.2.0.5上直接应用Patch 9824435。