Referencing Synonym to Remote Database Object in Forms Fails With Error or Causes Crash
Last updated on JULY 26, 2012
Applies to:Oracle Forms - Version: 6.0 to 11.1 - Release: 6 to 11.1
Information in this document applies to any platform.
***Checked for relevance on 14-Dec-2009***
***Checked for relevance on 27-Jun-2011***
An attempt to reference a synonym to a remote database object (procedure / function / table) in Forms will fail or cause a crash.
1. Create a simple database procedure in the remote database instance e.g MY_DB1
PROCEDURE MYTEST( p_no IN NUMBER ,p_string IN VARCHAR2 , p_date IN DATE )
l_no := p_no;
l_string := p_string;
l_date := p_date;
2. In the primary database instance e.g. MY_DB1 create a dblink and synonym to this procedure
CREATE PUBLIC DATABASE LINK mydblink CONNECT TO scott IDENTIFIED by tiger USING tns_database_alias_for_MY_DB2
CREATE PUBLIC SYNONYM mytest for mytest@mydblink
3. Create a simple form with a single button - WHEN-BUTTON-PRESSED trigger containing the code
mytest(1, 'hello', '06-APR-2006');
Compile the Form against the primary database - MY_DB1 - and run it. When the mytest procedure is called by pressing the button the following error occurs:
ORA-3113 "end-of-file on communication channel"
The error reproduces at will
If the application logic is more complex, other errors may occur like the ones below may be seen:
ORA-06544: PL/SQL: internal error, arguments: ,,,,,,,
ORA-06553: PLS-801 : internal error .
Forms 6i has been known to crash at compile or runtime
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms