Find Object Of Block
select segment_name,segment_type,owner from dba_extents where file_id=&file_id and &block_id between block_id and block_id + blocks -1;
Example:
select * from v$database_block_corruption; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION_TYPE ---------- ---------- ---------- ------------------ --------------------------- 103 452592 1 0 CORRUPT 123 1285869 1 0 FRACTURED 130 229009 1 0 CORRUPT SQL> select segment_name,segment_type,owner 2 from dba_extents 3 where file_id=&file_id 4 and &block_id between block_id and block_id + blocks -1; Enter value for file_id: 130 old 3: where file_id=&file_id new 3: where file_id=130 Enter value for block_id: 229009 old 4: and &block_id between block_id and block_id + blocks -1 new 4: and 229009 between block_id and block_id + blocks -1 SEGMENT_NAME SEGMENT_TYPE OWNER ----------------- ---------------- ---------------------------------------- ABCDEFGHIJKLMN INDEX USERABC
If the segment type is index, you can simply drop and create it again.
If the segment type is table, you should perform a media recovery, from backup.
recover datafile 130 block 229009;