cancel
Showing results for 
Search instead for 
Did you mean: 

ORA-00604

Enrico Venturi
Super Advisor

ORA-00604

Hello colleagues,
we meet a problem when running:
connect system/manager
/
alter tablespace $tbs offline $alter_option;
/
drop tablespace $tbs including contents cascade constraints;
/
alter system checkpoint;

We meet the error:
ORA-00604: error occurred at recursiveSQL level 1

What's the cause???

thanks
Enrico
13 REPLIES
Steven E. Protter
Exalted Contributor

Re: ORA-00604

Shalom Enrico,

http://ora-00604.ora-code.com/

http://orafaq.com/forum/t/21841/2/

http://searchoracle.techtarget.com/originalContent/0,289142,sid41_gci933283,00.html

http://oracle.ittoolbox.com/groups/technical-functional/oracle-dev-l/oracle-error-ora00604-383250

Google provides good resources on this one.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Enrico Venturi
Super Advisor

Re: ORA-00604

I forgot:
next error on the stack is:

ORA-01555: snapshot too old: rollback segment number 2 with name "R01" too small


Enrico
Peter Leddy_1
Esteemed Contributor

Re: ORA-00604

Hi Enrico,

Have a look at this - http://www.cryer.co.uk/brian/oracle/ORA01555.htm

You could try increasing the size of the rollback segment or adding more.

Rgds,

Peter
Sandman!
Honored Contributor

Re: ORA-00604

Or you could drop the tablespace without saving the undo information in the rollback segments that is if you are positive that no other database session is using that specific tablespace.
Mustafa Gulercan
Respected Contributor

Re: ORA-00604

hi;

ORA-604:

it is a hidden bug.Pls try following;

1. Stop all application server processes, including OPMN:



opmnctl stopall


2. Change $LANG:



unset LANG

- or -

LANG=en_US.ISO-8859-1; export LANG


3. Start up application server processes again:


opmnctl startall


Note that in $LANG charset names are different than in $NLS_LANG, because $LANG uses IANA names for character sets, e.g.
IANA Name: ISO-8859-1 ISO-8859-15 WINDOWS-1252
Oracle Name: WE8ISO8859P1 WE8ISO8859P15 WE8MSWIN1252

regards;
mustafa
Mustafa Gulercan
Respected Contributor

Re: ORA-00604

and for ORA-01555 i attached the solution


regards;
mustafa
Enrico Venturi
Super Advisor

Re: ORA-00604

Hello Sandman,
How can I drop a tablespace without saving the undo informations in the redo logs?
I cannot find the drop syntax.

thanks
Enrico
Frank de Vries
Respected Contributor

Re: ORA-00604

Hi Enrico

I can't think of a drop tablespace option that truncates the tablespace.

I can however think of a way to get around your problem.

Simply truncate all tables before you drop the tablespace and ensure no transactions are running.

Truncate does not keep redo.

If you want syntax or script how to quickly generate truncate script for your tables let me know okay.

Good luck:)
Look before you leap
Enrico Venturi
Super Advisor

Re: ORA-00604

Yes, I'd like such script!

Thanks
Enrico
Senthil Prabu.S_1
Trusted Contributor

Re: ORA-00604

Hello,
This should solve your problem;
http://www.cryer.co.uk/brian/oracle/ORA01555.htm


HTH,
Prabu.S
One man's "magic" is another man's engineering. "Supernatural" is a null word.
Gerardo Mora
Advisor

Re: ORA-00604

Hi Enrico,

Try to delete the tablespace with out other users in the system for ex. starting the database in restric mode or increase the roll back segments size.
share to learn
Sandman!
Honored Contributor

Re: ORA-00604

You can alter the tablespace to nologging mode but that will only affect objects created after the alter statement is run. As suggested truncate all objects in the tablespace after changing its logging mode and then simply drop it. That should do the trick for you. This way undo information won't be saved and you won't have to resize your rollback segments.

~hope it helps
Frank de Vries
Respected Contributor

Re: ORA-00604

Enrico

If you have sql*navigator or Toad it would make it easier to copy paste the output, if you just use sql*plus then you need to spool to file and run the file as a script:

Thus login into your schema as the owner

SQL>spool yourfile.sql
SQL>set pages 0
SQL>set feedback off
SQL>set echo off
SQL>select 'truncate table '||table_name||' resuse ;' from user_tables ;
SQL> spool off

You want to quickly edit yourfile.sql and
take the command that is repeated out and then save.

SQL> get yourfiles.sql
SQL> r
Look before you leap