Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> SQL Forms 3 and Oracle 8 - SUMMARY
(originally posted 6/1999, reposted with additional info)
BRIEFLY
(If I receive any useful tips I will update my summary and
repost. Note anti-spam header to email address)
18/1/2000 : I received some information from Isaac Chocron re point number 5) , indicating he found a solution - he writes :
"Recently we emigrated from Oracle 7.1.5 on Open VMS 6 to Oracle 8.0.5
on Open VMS 7.2
in client/server configuration (Our Forms 3 are in another Open VMS 6
computer ).
Your Summary help us very much.
The currently open problem is the unpredictably ORA-03113.
You indicate that the problem was ORA-07445. (We see ORA-00602 on our
trace files)
There is a patch to solve this problem."
(In our case we ended up converting these forms to 4.5, mostly
because of Y2K signoff requirements from some of our
"powers-that-be".
This went reasonably well, the only sticking point being a Pro*C User Exit that we can no longer compile on the new SUN iron because it no longer has a C compiler,and we are not willing to fork out for the Sun's C development environment (and don't have the guts to get GNU going). )
DETAILS
runmenu50 scott/tiger_at_8_tns_name my_menu runform30 scott/tiger_at_8_tns_name my_form
(or I think the equivalent TWO_TASK environment variable setting... something like
$TWO_TASK=8_tns_name ; export TWO_TASK # Unix Bourne shell example
allows you to run the normal command without change
runmenu50 my_menu
runform30 my_form )
2) the SQL generated internally by SQL*Forms uses the "rowid" pseudo-column. The format of this has changed in Oracle 8. You can't use rowid in SQL*Forms 3.0, and you have to stop SQL*Forms from generating SQL code that uses rowid in a "where" clause.
This means modifying locking, updating and deleting behaviour. (If you only query and insert, you are OK)
A workaround is to replace the default locking, updating and deleting behaviour, using ON-LOCK, ON-UPDATE and ON-DELETE triggers (assuming that you have a practical primary key for your tables , that you can use to replace rowid).
Technically we have found this works, and can be done reasonably tidily using special PL/SQL procedures, called from the triggers. The code - e.g. for the on-update trigger in particular
(There is the question of whether this is economic to do - for us it would have been given the number of forms and the time-to-live of the application, however it may not be economic in many cases)
(I understand that there is an Oracle patch for the rowid problem for Forms 4.x and higher ?)
3) We found we got run-time error with statements like
select sysdate into :forms_field from dual;
today date;
select sysdate into today from dual; :forms_field := today;
(Previously, we found the built-in SQL*Forms date variable stopped working when we moved from v6 to 7.2)
4) We found the SQL*Forms development tool core-dumped if connected
to 8. We have not tested the command line compiler. So even if run-time to 8 works, application maintenance may not be possible unless there is a an Oracle instance available that can support the forms compiler.
5) At this point we thought we had it licked. On testing everything
worked well most of the time, however we would get ORA-03113 errors unpredicatbly. It turns out this error is just a derivative error, caused by the process on the Oracle 8 back-end crashing, and disconnecting the client SQL*Forms 3.0
We checked the trace files on Oracle 8 generated by the crash and the actual error that causes the back-end crash was ORA-07445
6) We have been advised by Oracle support that the problem is
because of incompatabilities between the 7.2 libraries used by SQL*Forms 3, and Oracle 8. (Don't quite understand as I thought only SQL hit the back-end. Maybe the client does remote procedure calls as well and
the method signatures have changed ? Out of my depth here, as to why libraries on the client affect the backend server). Possible solutions
suggested were :
SQL*Forms 3.0 -----------> Database 7.3 ------------> Oracle 8 SQL*Net DBLink
Pretty early on, we got
ORA-01002: fetch out of sequence
This is not an uncommon error (having seen it quite a bit in these newgroups), and its possible there is a simple workaround, however we abandoned this approach at this point as it seems unlikely 7.2 DBLinks to
8 will be very hassle free, given the large gap. Received on Mon Jan 17 2000 - 17:25:18 CST
![]() |
![]() |