Solved

ORA-03113

Posted on 2001-06-04
8
2,022 Views
Last Modified: 2011-05-05
Hello there.
Can anyone explain me why i'm getting ORA-03113 when trying to execute the following code from the trigger in application written on Oracle Forms ? In the other hand, this code executes from the SQL+ correctly without any errors. I'm using Oracle Forms version 6.0.

declare
b a.tt;
begin
a.proc1(b);
end;

create package a as
type tr is record (a number, b number, c varchar(10));
type tt is table of tr index by binary_integer;
procedure proc1 (a in out tt);
end a;
create package body a as
procedure proc1 (a in out tt) is
cursor c1 is
  select * from t1;
  i binary_integer:=1;
begin
  open c1;
loop
    fetch c1 into a(i);
    exit when c1%notfound;
    i:=i+1;
end loop;
close c1;
end proc1;
end a;
0
Comment
Question by:lukinov
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 5

Expert Comment

by:ORACLEtune
ID: 6154885
hi,

An ORA-3113 "end of file on communication channel" error is a general error usually reported by a client process connected to an Oracle database. The error basically means 'I cannot communicate with the Oracle shadow process'. As it is such a general error more information must be collected to help determine what has happened - this error by itself does not indicate the cause of the problem. For example, ORA-3113 could be signalled for any of these scenarios:

Server machine crashed, Your server process was killed at O/S level, Network problems, Oracle internal errors / aborts on the server Client incorrectly handling multiple connections  etc.. etc.. etc.. - a lot of possible causes !!

what error messages Precede the ORA-3113 ...

0
 
LVL 47

Expert Comment

by:schwertner
ID: 6155353
You are trying to issue DDL command in Forms. The best way to do this is to create a stored procedure and to call this procedure from the Oracle server sidee.

But if you would like to do this on the client site use FORMS_DDL buil-in.

DDL (Data Dictionary Language) commands, such as CREATE TABLE and DROP SEQUENCE, can be issued by calling the FORMS_DDL built-in procedure. Be aware that FORMS_DDL built-in always issues an implicit COMMIT_FORM after executing the desired statement. Consequently, FORMS_DDL built-in should be called only when the application does not have unsaved changes pending that the operator might want to subsequently undo.


/*  

** Built-in:  FORMS_DDL
** Example:   The expression can be a string literal.
*/  
BEGIN
  Forms_DDL('create table temp(n NUMBER)');
  IF NOT Form_Success THEN
    Message ('Table Creation Failed');
  ELSE
    Message ('Table Created');
  END IF;
END;
0
 

Author Comment

by:lukinov
ID: 6157716
Sorry, forgot to mention that in case of using plane table type (not table of record) all is going ok. No more error message then ORA-3113 tho :(.
2shwertner: Where did you see DDL (Data DEFINITION Language) at my proc code ? I'm sure there is not. Again: it's stored procedure. Exactly it is. And sure it's executing at the server side, but calling from the form's trigger (client side). Thank you all anyhow. Any other idea ?
P.S. If you see syntax errors at my code (as well as any mistakes in my poor english :), don't worry about it, it might be typo. Unfortunately i don't have access to oracle console so cannot check correctness of my code.
0
 
LVL 47

Expert Comment

by:schwertner
ID: 6159779
Creating of packages is creating of data base objects. The package becomes part of the database. Not only tables and views are parts of the database. You said "stored procedure". Where you store it? In the database of course. So I am sure your statement can be clasified as DDL. Forms has troubles executing DDL's.


Ne budte tak samouwernim. Popitaites razobratsa w moih predlojeniah - tak wam budet lucshe!
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Comment

by:lukinov
ID: 6184863
Look at proc1 code. It's not so difficult to see that there is not DDL statements. Again - i'm calling that procedure from form's trigger. I'm not trying to execute that 'create package' stuff. I'm just calling proc1. Look at the top of my first message. That is what i'm trying to do from the trigger. Package "a" is already there, as well as procedure "proc1" is.

Ya razobralsya v Vashih predlojeniyah. No ne vigu v kode proceduri nikakogo DDL. Krome cursora i operatorov upravleniya v kode "proc1" nichego net.
0
 
LVL 47

Accepted Solution

by:
schwertner earned 50 total points
ID: 6189823
Everything you create with CREATE, CREATE OR REPLACE are Oracle Database Objects and they are stored in the database. Look what you can read in the Oracle documentation (I copied it directly from there):


Oracle8i Concepts
Release 2 (8.1.6)
A76965-01

..........

Schemas and Schema Objects
A schema is a collection of database objects that are available to a user. Schema objects are the logical structures that directly refer to the database's data. Schema objects include such structures as tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links. (There is no relationship between a tablespace and a schema; objects in the same schema can be in different tablespaces, and a tablespace can hold objects from different schemas.)

Tables
..........
Views
............
Materialized Views
........
Sequences
........
Program Units
Program unit is used in this manual to refer to stored procedures, functions, packages, triggers, and anonymous blocks.
.....
Synonyms
.....
Indexes
.....
Clusters and Hash Clusters
.....
Dimensions
.....
Database Links
.....


0
 
LVL 6

Expert Comment

by:Mindphaser
ID: 7035987
Please update and finalize this old, open question. Please:

1) Award points ... if you need Moderator assistance to split points, comment here with details please or advise us in Community Support with a zero point question and this question link.
2) Ask us to delete it if it has no value to you or others
3) Ask for a refund so that we can move it to our PAQ at zero points if it did not help you but may help others.

EXPERT INPUT WITH CLOSING RECOMMENDATIONS IS APPRECIATED IF ASKER DOES NOT RESPOND.

Thanks,

** Mindphaser - Community Support Moderator **

P.S.  Click your Member Profile, choose View Question History to go through all your open and locked questions to update them.
0
 
LVL 6

Expert Comment

by:Mindphaser
ID: 7043051
Force accepted

** Mindphaser - Community Support Moderator **
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Join & Write a Comment

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…
I remember the day when someone asked me to create a user for an application developement. The user should be able to create views and materialized views and, so, I used the following syntax: (CODE) This way, I guessed, I would ensure that use…
Via a live example, show how to take different types of Oracle backups using RMAN.
This video shows how to Export data from an Oracle database using the Original Export Utility.  The corresponding Import utility, which works the same way is referenced, but not demonstrated.

706 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now