My Oracle Support Banner

Primary Note for Diagnosing ORA-600 (Doc ID 1092832.1)

Last updated on JUNE 23, 2022

Applies to:

Oracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Oracle Database - Enterprise Edition - Version and later
Information in this document applies to any platform.


This article is intended to assist in finding tips and techniques to assist with finding solutions to ORA-00600 errors. The document will cover the following topics:



The ORA-600 error is the generic internal error number for Oracle program exceptions. It indicates that a process has encountered a low-level, unexpected condition.

The ORA-600 error includes a list of arguments in square brackets:

ORA 600 "internal error code, arguments: [%s], [%s],[%s], [%s], [%s]"

The first argument is the internal message number or character string. This argument and the database version number are critical in identifying the root cause and the potential impact to your system. The remaining arguments in the ORA-600 error text are used to supply further information (e.g. values of internal variables etc).

The first argument may help to narrow your problem to known issues. However, this argument can point to functionality that is referenced by many areas in the Oracle source code. The more detailed call stack information reported in the ORA-600 error trace may be needed to find a solution.


Whenever an ORA-600 error is raised, a trace file is generated and an entry is written to the alert.log with details of the trace file location. As of Oracle 11g, the database includes an advanced fault diagnosability infrastructure to manage trace data. For more detail on this functionality see the FAQ and quick steps video.

<Note 453125.1> - 11g Diagnosability Frequently Asked Questions
<Note 443529.1> - 11g Quick Steps to Package and Send Critical Error Diagnostic Information to Support[Video]

1. Check the Alert Log

The alert log may indicate additional errors or other internal errors at the time of the problem. Focus your analysis of the problem on the first internal error in the sequence. There are some exceptions, but often additional internal errors are side-effects of the first error condition.

The associated trace file may be truncated if the MAX_DUMP_FILE_SIZE parameter is not setup high enough or to "unlimited". If you see a message at the end of the trace file


there could be vital diagnostic information missing in the file and finding the root issue may be very difficult. Set the MAX_DUMP_FILE_SIZE appropriately and regenerate the error for complete trace information.

2. Search 600/7445 Lookup Tool

Visit My Oracle Support to access the ORA-00600 Lookup tool (<Note 153788.1>). The ORA-600/ORA-7445 Lookup tool may lead you to applicable content in My Oracle Support on the problem and can be used to investigate the problem with argument data from the error message or you can pull out key stack pointers from the associated trace file to match up against known bugs.

3. Investigate reference material on error

Choose Error Code ORA-600 and enter the first argument number or character string in the tool. Click on "Lookup error" button to review the reference note for your error. The reference note will provide a description of the error and may point to specific notes or bugs that possibly cause the error.

4.  In 11g, DBMS_SQLDIAG package can be used to find workarounds for issues where a query causes a session to crash or raise a critical error.
For more detail on DBMS_SQLDIAG usage, please see:
<Note 1360120.1> How to use DBMS_SQLDIAG to Diagnose Crash or Error Issues

5. "Fine tune" searches in Knowledge Base

You can also click on the "Search Knowledge Base" button. This potentially returns a large result set. To narrow the hits, add symptom key words or phrases to your search in the Knowledge Base. You might also find more specific matches using the call stack functions listed in the trace file just after the first argument listed with the ORA-600 error text.

As an example, you receive the ORA-600 [kghalo] error. The initial search in My Oracle Support brings back hundreds of hits. The call stack from the trace file shows the following functions:


Adding "kghgex" to the search keywords in the Knowledge Base narrows the hits to less than 30.

See the following note and video for more pointers on using the ORA-600/ORA-7445 Lookup Tool.

<Note 1082674.1> - A Video To Demonstrate The Usage Of The ORA-600/ORA-7445 Lookup Tool [Video]

See detailed pointers on analysis of these errors in the following note

<Note 390293.1> - Introduction to 600/7445 Internal Error Analysis

6. If the ORA-600 argument is 12333, 729 or 17059, upload the trace file written by the error to the ORA 600 Diagnostic Tool  for quick identification of known defects.

7. If it becomes necessary to get assistance from Oracle Support on an ORA-600 problem, please provide the information requested in <Note 1638904.1> - SRDC - ORA-600/ORA-7445: Checklist of Evidence to Supply

Common Issues

The following internal errors are ORA-600 "top searches" in our Knowledge Base recently along with a direct link to the reference note for that error:

ORA-600 17281
  <Note 39361.1> - ORA-600 [17281] "Error closing all cursors for an instantiation"

ORA-600 12333
  <Note 35928.1> - ORA-600 [12333] "Fatal Two-Task Protocol Violation"

ORA-600 729
  <Note 755270.1> - ORA-00600 [729], [40], [space leak]

Memory Corruption ORA-600 [kghxxx] and ORA-600 [17xxx]
  <Note 429380.1> - FAQ Memory Corruption


To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document
 Common Issues

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.