关于ORA-600[qerrmOStart2]已经碰到第三次不同的错误了,简单记录一下这个问题。
数据库版本为10.2.0.5 RAC for Linux X86-64,错误信息为:
Fri Jun 29 14:53:29 CST 2012 Errors IN file /opt/app/oracle/admin/ora/udump/ora2_ora_5832.trc: ORA-00600: internal error code, arguments: [qerrmOStart2], [972], [ORA-00972: identifier IS too long ], [], [], [], [], [] Fri Jun 29 14:53:36 CST 2012 Trace dumping IS performing id=[cdmp_20120629145336] Fri Jun 29 14:53:36 CST 2012 Errors IN file /opt/app/oracle/admin/ora/udump/ora2_ora_5832.trc: ORA-07445: exception encountered: core dump [qerrmOdcl()+47] [SIGSEGV] [Address NOT mapped TO object] [0x000000008] [] [] ORA-00600: internal error code, arguments: [qerrmOStart2], [972], [ORA-00972: identifier IS too long ], [], [], [], [], [] Fri Jun 29 14:53:58 CST 2012 Errors IN file /opt/app/oracle/admin/ora/udump/ora2_ora_3843.trc: ORA-00600: internal error code, arguments: [qerrmOStart2], [972], [ORA-00972: identifier IS too long ], [], [], [], [], [] Fri Jun 29 14:53:59 CST 2012 Errors IN file /opt/app/oracle/admin/ora/udump/ora2_ora_3843.trc: ORA-07445: exception encountered: core dump [qerrmOdcl()+47] [SIGSEGV] [Address NOT mapped TO object] [0x000000008] [] [] ORA-00600: internal error code, arguments: [qerrmOStart2], [972], [ORA-00972: identifier IS too long ], [], [], [], [], [] Fri Jun 29 14:53:59 CST 2012 Trace dumping IS performing id=[cdmp_20120629145359] Fri Jun 29 14:54:35 CST 2012 Trace dumping IS performing id=[cdmp_20120629145500] |
和以前一样,导致600错误的根源是第二个参数972错误。由于在SQL处理过程中出现了长度超过30的标识符,从而导致了这个600错误。
因此可以将这个ORA-600[qerrmOStart2][972]等价的当做ORA-00972: identifier is too long错误来处理。