1

While executing the below query, I am getting the error:

ORA-00600: internal error code, arguments: [13013], [5001], [1675658], [773963968], [10], [773963968], [17], []

MERGE INTO nbfc_address_m t1
USING (SELECT a.col2, b.lesseeid
        FROM DT_AMRID a,
        LEA_AGREEMENT_DTL b
        WHERE a.agrid=b.agreementid) t2
ON (t1.bpid=t2.lesseeid)
WHEN MATCHED THEN
UPDATE SET t1.mobile=t2.col2

This is for updating mobile number.

APC
  • 144,005
  • 19
  • 170
  • 281
AAMIR KHAN
  • 23
  • 1
  • 6
  • what is your Oracle Version, what is the value of `optimizer_features_enable` Parameter? – hotfix Jul 05 '19 at 11:31
  • 2
    ORA-00600 is the generic code for unhandled internal Oracle exceptions i.e. bugs. The correct approach to dealing with such errors is to contact Oracle Support. If you don't have a Support contract you may be out of luck. These errors are often specific to versions of the database, operating system or underlying hardware. So it is unlikely anybody on this site will be bale to solve the problem for you (although it seems a few are willing to take a guess). – APC Jul 05 '19 at 14:43
  • Having which I suggest you read [this blog post here](https://aleckaplandba.blogspot.com/2016/03/ora-00600-internal-error-code-arguments.html) which - apparently against the Support T&Cs - publishes the contents of a Support document that seems highly pertinent to your case. – APC Jul 05 '19 at 14:47

2 Answers2

4

Specific, less useful answer

Oracle is trying to get a stable set of rows to update and could not, after 5001 attempts.

Here is what the arguments mean:

  • [13013] ==> indicates the problem is a failure to identify a stable set of rows to update
  • [5001] ==> the number of times Oracle tried
  • [1675658] => The data object number (SELECT * FROM DBA_OBJECTS WHERE DATA_OBJECT_ID = 1675658)
  • [773963968] => Tablespace-relative data block address
  • [10] ==> row slot number
  • [773963968] ==> decimal relative data block address of block being updated
  • [17] ==> internal code
  • [] ==> not used

What to try:

First, check for block corruption in your table's indexes: ANALYZE TABLE <table_name> VALIDATE STRUCTURE CASCADE. Then drop and re-create and indexes that show problems.

General, more useful answer

OK, how did I know all of the above (assuming it's even correct)?...

"ORA-00600", "ORA-00700", and "ORA-07445" errors are internal Oracle errors. The only entity really capable of diagnosing / explaining / fixing them is Oracle Corporation. To that end, Oracle provides a diagnostic tool on their support website: http://support.oracle.com. It is document ID 153788.1 on their site (though you can also just search on their site for "ORA-600 tool").

Using that tool, you enter the specifics of your ORA-00600 error (usually just the first argument - "13013", in your case) and, if you're lucky, it will redirect you to a note telling you all about it.

Matthew McPeak
  • 17,705
  • 2
  • 27
  • 59
  • 2
    Just because it's not clear from the above, access to the ORA-00600 is a perk of having an Oracle Support contact, and it's not available to the non-paying public. – APC Jul 05 '19 at 15:11
1

This might be caused by Oracle memory corruption.

Try -

  1. Drop and recreate Indexes on both the tables used in the query.
  2. Flush the database cache memory
  3. Try adding the table owner prefix at the session level

It must help you.

Cheers!!

Popeye
  • 35,427
  • 4
  • 10
  • 31
  • 3
    Any clue as to why this random assortment of suggestions might work? – APC Jul 05 '19 at 14:39
  • This is not random try, I had this issue in the past for 4-5 times and I went through the internet and found this solution that worked for me. I have this solution noted down in my notes. – Popeye Jul 08 '19 at 06:57