HOW TO CONNECT ORACLE 6i FORMS TO ORACLE 12c / 19c

 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.

Muhammad Abdullah Al Noor

Muhammad Abdullah Al Noor, An Oracle Apex Consultants and founder of Noors Technology (www.noorstech.com). Core Expertise : Database Administration, Oracle Forms and Reports Development, Oracle Apex Application Designer and Development, Linux Professional etc. Also the owner of TrainerBD Training and OraDemy E-Learning. WhatsApp +8801790721177

Post a Comment

Previous Post Next Post