Posted on 2003-03-11
Medium Priority
Last Modified: 2007-12-19
I am Using form (Form6i) and back-end being oracle 8.1.7PO on a P4 machine 256mb RAM Win-98 PC.
                        The form has been tested else where and has no bugs. But here it is showing "Un Handelled Exception (604)" in executing a simple insert inside a loop.
                     Kindly tell me a way to debug. My init.ora has open_cursor=5000 and proper rollback_segments.
Question by:sujit_kumar
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 35

Expert Comment

by:Mark Geerlings
ID: 8114475
My guess is lack of space in a data or index tablespace.  If you cannot provide any more details, it will be very difficult for us to troubleshoot.  

Here is the Oracle documentation for ORA-00604:

ORA-00604 error occurred at recursive SQL level...

Cause: An error occurred while processing a recursive SQL statement (a statement applying to internal dictionary tables).

Action: If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Customer Support.

- - - -

So, did you see other Oracle errors as well?  Can you post them?

Expert Comment

ID: 8117013
would you just post give the output for ...
 show sga      command in backend...i.e. from sql*plus

how many rollback segments you have created and are online...plzzz confirm..

Expert Comment

ID: 8117684
a ref-cursor that has not been defined properly will generate this error...
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

LVL 11

Author Comment

ID: 8126383
Nice comments. But i can't see the second error as i am experincing it in Forms.
                Any other suggestions.
LVL 35

Expert Comment

by:Mark Geerlings
ID: 8136885
Based on the limited amount of information you've give us, I still think the most likely cause of the problem is a space issue.  This could be O/S disk space (if all of the datafiles in the database are set to autoextend) or if the tablespaces are not set up to autoextend, then either the data, index or system tablespace are probably out of room.  Have you confirmed that there is free space available in both the database and the O/S?

Have you checked the Oracle alert.log file to see if it gives you any clues to the underlying problem?
LVL 11

Author Comment

ID: 8141666
Hi ,
    Yes i have checked for System resources and also my tablespaces have auto extend ON, I have checked for the rollback segments and added one more to it. set the perticulat transaction (which is showing message) to the newly created roll back segment. But nothing helps. I tried it in diff machines it works perfectly. I just want to know the possible cause. Because ORA-00604 error is based on the second error i know.. But the error is never appearing from the form run time.
LVL 35

Expert Comment

by:Mark Geerlings
ID: 8152112
Have you checked the alert.log file on the server?

You can add exception-handling to the procedure/program unit that has the loop and the insert.  That should make it possible to trap the actual error.

Otherwise, can you make that loop and insert procedure a stand-alone procedure that you can run from SQL*Plus?  That would give you another way to trap the actual error.
LVL 11

Author Comment

ID: 8178938
Thanks markgeer ,
       But i have tried all of it. I executed the loop in back-end. It is working fine. I tried exception but it is coming to exception on ORA-00604
                        I have also executed the form from anather back-end (of same configuration) it is working .
              Any other suggestions ??
LVL 35

Accepted Solution

Mark Geerlings earned 300 total points
ID: 8180627
If the form works fine on a different database (that is the same version of Oracle and the same operating system), then the problem is definitely in the database, not in the form.  

Please run these two scripts and post the results here:

set linesize 100;
break on report;
column size format 99,999,999,999
column "Used Bytes" format 99,999,999,999;
column "% full" format 999;
compute sum of Size on report;
compute sum of "Used bytes" on report;
select substr(df.name,1,40) "File name", lpad(to_char(df.file#),4) "File", df.bytes "Size",
sum(sg.bytes) "Used bytes", (sum(sg.bytes) * 100) / df.bytes "% full"
from dba_extents sg, dba_data_files db, v$datafile df
where db.file_id = df.file#
and sg.tablespace_name (+) = db.tablespace_name
and sg.file_id (+) = db.file_id
group by substr(df.name,1,40), df.file#, df.bytes;
-- (end of "filesize.sql")

-- freespac.sql
column file_id format 99999 heading "File#";
column Extents format 9999999;
column Bytes format 99,999,999,999;
column Blocks format 999,999,999;
column Largest format 9,999,999,999;
to "temporary" tablespaces
select substr(tablespace_name,1,16) "Tablespace",
 file_id, count(block_id) "Extents",
sum(blocks) "Blocks", sum(bytes) "Bytes", max(bytes) "Largest"
from user_free_space
group by tablespace_name, file_id
select substr(tablespace_name,1,16) "Tablespace",
file_id, 1 "Extents", blocks_free "Blocks", bytes_free "Bytes",
bytes_free "Largest"
from v$temp_space_header
order by 1;
-- (end of "freespac.sql")
LVL 35

Expert Comment

by:Mark Geerlings
ID: 8180637
There is an error in the "freespac.sql" script I posted.  I had removed part of a comment in that script before posting it here, but not the entire comment.  The line:
'to "temporary" tablespaces'
should be removed.
LVL 11

Author Comment

ID: 8229857
hi markgeer,
             I have uninstalled that database and re-installed oracle after that thing are working fine. But thanks for the scripts.

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Have you ever had to make fundamental changes to a table in Oracle, but haven't been able to get any downtime?  I'm talking things like: * Dropping columns * Shrinking allocated space * Removing chained blocks and restoring the PCTFREE * Re-or…
This video shows how to recover a database from a user managed backup
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.
Suggested Courses

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question