Fix ORA-00600 error belong to the object corruption in Oracle
Try to validate the table structure using command.
Validate the index.
SQL> analyze table gl.gl_interface validate structure cascade;
analyze table gl.gl_interface validate structure cascade
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
Check the trace file create by above statement in udump folder and search for following text
Table/Index row count mismatch
table 48068 : index 239744, 191029
Index root = tsn: 4 rdba: 0x0d00438b
In above example rdba value is in HEXADECIMAL, Convert rdba: 0x0d00438b to decimal value like 0x0d00438b is equivalent to 218121099.
Query give you detail of Header_file and Header_block.
SQL> select dbms_utility.data_block_address_file(218121099) "Rfile#"
,dbms_utility.data_block_address_block(218121099) "Block#"
from dual;
Rfile# Block#
---------- ----------
52 17291
Once you get the Header_file and Header_Block use the SQL statement to find out the segment name and segment type.
SQL> select owner, segment_name, segment_type
from dba_segments
where header_file = 52
and header_block = 17291;
OWNER SEGMENT_NAME SEGMENT_TYPE
------ ---------------- ------------
GL GL_INTERFACE_N1 INDEX
You can rebuild index or drop it and recreate it.
-- it's better to rebuild.
SQL>Alter index gl.gl_interface_n1 rebuild;
--Get DDL script first then drop and recreate it.
SQL> drop index GL.GL_INTERFACE_N1;
CREATE INDEX GL.GL_INTERFACE_N1 ON GL.GL_INTERFACE
(USER_JE_SOURCE_NAME, SET_OF_BOOKS_ID, GROUP_ID)
NOLOGGING
TABLESPACE APPS_TS_INTERFACE
PCTFREE 0
INITRANS 11
MAXTRANS 255
STORAGE (
INITIAL 128K
NEXT 128K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
Validate the structure of table again
SQL> analyze table gl.gl_interface validate structure cascade;
Table analyzed.