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.
LVL 11
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mark GeerlingsDatabase AdministratorCommented:
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?
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..
a ref-cursor that has not been defined properly will generate this error...
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

sujit_kumarAuthor Commented:
Nice comments. But i can't see the second error as i am experincing it in Forms.
                Any other suggestions.
Mark GeerlingsDatabase AdministratorCommented:
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?
sujit_kumarAuthor Commented:
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.
Mark GeerlingsDatabase AdministratorCommented:
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.
sujit_kumarAuthor Commented:
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 ??
Mark GeerlingsDatabase AdministratorCommented:
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")

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Mark GeerlingsDatabase AdministratorCommented:
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.
sujit_kumarAuthor Commented:
hi markgeer,
             I have uninstalled that database and re-installed oracle after that thing are working fine. But thanks for the scripts.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.