Home » SQL & PL/SQL » SQL & PL/SQL » ORA-00604 and ORA-01578
ORA-00604 and ORA-01578 [message #36732] Fri, 14 December 2001 09:56 Go to next message
Andrew Ho
Messages: 2
Registered: November 2001
Junior Member
Hi all,

I have written some 30+ procedures, all tested and are just trying to put them in a remote server. But I got this message for almost every single one of my procedures:

create or replace procedure AddFeature (name1 in varchar2, identity1 in varchar2
)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01578: ORACLE data block corrupted (file # 1, block # 5294)
ORA-01110: data file 1: '/u02/oradata/isr/system01.dbf

I looked at http://technet.oracle.com/doc/server.815/a67785/e1500.htm
And it suggested me to restore the corrupt segment, first locating it by:

SELECT SEGMENT_TYPE,OWNER||'.'||SEGMENT_NAME FROM DBA_EXTENTS
WHERE file = FILE_ID AND block BETWEEN BLOCK_ID AND BLOCK_ID+BLOCKS -1;

Where file = 1 and block = 5294 for my case. But I got nonething but:
ORA-00942: table or view does not exist

I'm very lost and any help would be really appreciated.
Thank you very much

Andrew

----------------------------------------------------------------------
Re: ORA-00604 and ORA-01578 [message #36745 is a reply to message #36732] Mon, 17 December 2001 06:05 Go to previous messageGo to next message
Nageswara Rao
Messages: 2
Registered: December 2001
Junior Member
It looks your os data block #5294 has been corrupted. U need to restore the datafile system01.dbf. While creating the procedure the oracle is trying to use the data file system01.dbf and block # 5294.
Temporary solution to this, U can alter the current user tablespace(if u have any other tablespace other than system)and create the procedure. Any how u have to correct the block.

----------------------------------------------------------------------
Re: ORA-00604 and ORA-01578 [message #38750 is a reply to message #36732] Sat, 11 May 2002 02:22 Go to previous message
Vini
Messages: 1
Registered: May 2002
Junior Member
First run the sql given below on remote server

select owner, segment_name, segment_type, segment_name
from dba_extents
where file_id = 9 and BLOCK_ID between 31550 AND 31550+31550 -1;

Replace file_id & block id with u r nos.

This will give u all the objects which are corrupted u have to recreate it... Export all the objects & import the same objects in diff user. I mean export the full database & import it to new user & try

Hopefully it should work
Previous Topic: sql*Plus Login
Next Topic: Oracle 8i and 9i co-existence
Goto Forum:
  


Current Time: Wed Apr 24 15:04:02 CDT 2024