Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.0 - Release: 10.1 to 11.2 Oracle Server - Enterprise Edition - Version: 10.2.0.4 and later [Release: 10.2 and later]
Goal
The Goal of this article is to resolve Ora-00600[13013] and check if there are any known bugs associated with this error to prevent future occurence of this issue
Solution
Section 1> What information needs to be Collected
ORA-600 [13013] [a] [b] [c] [d] [e] [f]
This format relates to Oracle Server 8.0.3 to 10.1
Arg [a] Passcount Arg [b] Data Object number Arg [c] Tablespace Relative DBA of block containing the row to be updated Arg [d] Row Slot number Arg [e] Relative DBA of block being updated (should be same as [c]) Arg [f] Code
The Second argument would give the information about the data object id.
This would give information about the object involved.
SQL>Select object_name,object_type,owner from dba_objects where data_object_id=
Once the Object is identified run the following :
The below command check if the table has corruption or not .
SQL> Analzye table .
validate structure online ;
If this goes fine table doesnot have corruption. For next command.
If the above command fails with ORA-1498 go to Section 3
The below command check if table/index has corruption or not
SQL>Analzye table .
validate structure cascade online ;
If the above command errors out with ora-1499 it indicates a corruption in index.
Go to section 2 for resolution
Run dbverify on the datafile reported in the error
Arg [c] in the ora-0600[13011] would give the Relative DBA
arg b : [57353] - it is the OBJECT_ID arg c : [155254965] - it is the block address in Decimal arg d : [261] - is it the slot number
2. Translate the the block address in Decimal to a file# and block #
select dbms_utility.data_block_address_file(155254965) Rfile# ,dbms_utility.data_block_address_block(155254965) "Block#" from dual;
RFILE# Block# ---------- ---------- 37 65717
The Relative file is 37 The block number is 188357
Find the data_object_id for this object
Argument b is Object_id--> 57353
SQL>Select data_object_id ,object_name,owner from dba_objects where object_id=57353 ;
3. Create the rowid using dbms_rowid.rowid_create(1,DATA_OBJECT_ID,FILE#,BLOCK#,SLOT#)
In this case :
select dbms_rowid.rowid_create(1,57353,37,65717,261) from dual; DBMS_ROWID.ROWID_C ------------------ AAAOAJAAlAAAQC1AEF
4. You can select from table and identify the record causing the issue
SQL> Select * from .
where rowid='AAAOAJAAlAAAQC1AEF';
Are there any Known Bug
There is a internal bug number 5085288
fixed in 11.1
Details
ORA-600 [13013] [5001] error can occur on a MERGE command if the DELETE pass encounters a consistent read (CR) error due to the update pass having updated the same row and column previously.
Check for availability of one off patch using patch 5085288
Abstract: ORA-30926 / OERI:13030 during update Fixed-Releases: 9208 A204 B106
Details: ORA-30926 (in Oracle 9i) or ORA-600 [13030] (in Oracle10g) can occur during an update DML. This can occur if an internal ORA-1551 error occurs and is trapped (1551 errors are not visible to client code and are trapped and handled internally)
Fixed In Ver: 11.0 Check for availability of one off patch using patch 5085288