HOW TO CONNECT ORACLE 6i FORMS TO ORACLE 12c / 19c
Pre-requisites
Disable Case-Sensitive Passwords
Developer 6i cannot handle case-sensitive logins introduced in 11g+.
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
(Now passwords are treated as uppercase like in older versions.)
Disable Password Expiry and Reuse Rules
Prevents connection issues caused by expired or reused passwords.
ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Allow Export/Creation of Empty Tables (optional)
Sometimes older tools like Forms 6i expect immediate segment allocation.
ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION = FALSE SCOPE=BOTH;
Modify SQLNET.ORA
This is critical — the old 6i client uses outdated authentication.
Open the database SQLNET.ORA (e.g. C:\oracle\product\19c\...\network\admin\SQLNET.ORA)
and add these lines:
SQLNET.ALLOWED_LOGON_VERSION = 8
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8
SQLNET.AUTHENTICATION_SERVICES = (NONE)
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
Enable XDB Listener Access
This step allows the database XML DB listener to be accessible externally.
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
Character Set Adjustment (if needed)
To fix Forms 6i/19c data compatibility problems (like Unicode or UTF-8 mismatch):
sudo usermod -aG dba oracle
export ORACLE_SID=policy
whoami
groups
echo $ORACLE_SID
cat $ORACLE_HOME/network/admin/sqlnet.ora | grep AUTH
in sqlplus :
------------
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;
Check that the database character set is now UTF8:
SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET';
Verify TNS Configuration
In both:
C:\Developer6i\NET80\ADMIN\tnsnames.ora
C:\oracle\product\19c\...\network\admin\tnsnames.ora
Example entry:
policy =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = policy)
)
)
Test Connection
From Forms Builder 6i:
Connect using:
User: hr
Password: hr
Database: ORCL19C
If everything’s correct, it should connect successfully.