I am learning PL/SQL programming. I'm trying to create a view with the following statement:

create or replace view viewName as select ID from employees; 

The view creation throws the following error:

ORA-00604 error occurred at recursive level 1
ORA-08102 Index not found, obj #39 , file 1 block 61248

How can I fix it?

The problem is with all objects, procedures,functions,views and i am using the HR Database of Oracle 11G for learning purposes.


1 Answer 1


File 1 belongs to the SYSTEM tablespace. Objects with such low id as 39 are dictionary objects. For example in my database it is an index of OBJ$ (I_OBJ4). ORA-08102 also points us towards an index, which seems to be corrupt based on the error you get.

Find the index name by:

select object_name from dba_objects where object_id = 39;

Unfortunately you will not be able to rebuild this index (ORA-00701), but you can recreate it:

shutdown immediate
startup upgrade
alter session set nls_length_semantics=byte;
  • your answer sounds logical for me :-).
    – Peter Teoh
    Dec 30, 2014 at 8:16
  • I have this issue. I_OBJ4 index of OBJ$ is corrupt and I cannot rebuild or drop the index. When I try your solution above, it gives me the same error when running the utlmmig: ORA-08102: index key not found, obj# 148225, file 1, block 5699.
    – sandman
    Jan 18, 2018 at 10:38
  • and now even worse, the database won't start. Database mounted. ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39714: upgrade script utlmmig.sql failed
    – sandman
    Jan 18, 2018 at 11:38
  • solved it by doing: delete from props$ where name='BOOTSTRAP_UPGRADE_ERROR';
    – sandman
    Jan 19, 2018 at 10:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.