Oracle Database 10g Developer 6i Settings For Arabic Urdu Support Work

Here’s a comprehensive, step-by-step guide to configuring Oracle Database 10g and Oracle Forms Developer 6i (and Reports 6i) for full Arabic and Urdu language support. This covers database character sets, NLS settings, form-level properties, and OS-level configurations.


Before going live with Arabic/Urdu support in Developer 6i + Oracle 10g, verify:

| Component | Setting | Status | |-----------|---------|--------| | DB Character Set | AL32UTF8 | ☐ | | NLS_LANG (Server) | ARABIC*.AL32UTF8 | ☐ | | NLS_LANG (Client/Developer) | ARABIC*.AL32UTF8 | ☐ | | Windows System Locale | Arabic/Urdu | ☐ | | Developer Home Registry | FORMS60_CHARACTER_SET=AL32UTF8 | ☐ | | Fonts Installed | Arial Unicode MS / Urdu Fonts | ☐ | | Form Visual Attributes | Right-justified, RTL reading | ☐ | | Reports Destype | PDF for printing | ☐ | | Test String | مرحبا، اردو: ے، ڑ، ں | ☐ |


Set these in the Oracle 10g environment (.bash_profile or registry):

NLS_LANG=ARABIC_UNITED ARAB EMIRATES.AL32UTF8
NLS_SORT=ARABIC
NLS_DATE_LANGUAGE=ARABIC
export NLS_LANG NLS_SORT NLS_DATE_LANGUAGE

Note for Urdu: Even though NLS_LANG says "ARABIC", using AL32UTF8 allows Urdu characters to pass through.

To ensure specific runtime behaviors, the following registry keys should be modified:

If you are setting up a new system, avoid Developer 6i. Use:

For legacy maintenance, the above settings will work for basic Arabic/Urdu display and entry, but expect shaping and reordering issues with complex Urdu text (e.g., Nastaʿlīq style).

To support Arabic and Urdu in a setup with Oracle Database 10g and Developer 6i, you must align the character set settings across the database, the client operating system, and the Developer 6i environment. 1. Database Configuration

The database must be created or altered to use a character set that supports Right-to-Left (RTL) scripts.

Recommended Character Sets: AR8MSWIN1256 (Windows Arabic) or AL32UTF8 (Unicode). Before going live with Arabic/Urdu support in Developer

Check Current Settings: Run the query SELECT * FROM nls_database_parameters;.

Changing the Character Set: If the database was created with an incompatible set (like WE8MSWIN1252), it may need to be recreated or altered using:

SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER DATABASE OPEN; ALTER DATABASE CHARACTER SET AR8MSWIN1256; SHUTDOWN IMMEDIATE; STARTUP; Use code with caution. Copied to clipboard

Note: Changing the character set on an existing database with data can be complex and may require data migration. 2. Client Registry Settings (Developer 6i)

Oracle Developer 6i relies on the NLS_LANG parameter in the Windows Registry to determine how it interprets and displays data.

Registry Path: Open regedit and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE (or HOME0 depending on your installation).

Value to Set: Change the NLS_LANG value to AMERICAN_AMERICA.AR8MSWIN1256.

Using AL32UTF8 is often recommended for modern setups, but legacy Developer 6i tools sometimes struggle with Unicode, making AR8MSWIN1256 a common stable choice for Arabic/Urdu. 3. Windows Operating System Settings

The local machine must have the appropriate language support installed to render characters correctly.

System Locale: Go to Control Panel > Region > Administrative > Change System Locale. Set this to Arabic or Urdu and restart. Set these in the Oracle 10g environment (

Fonts: Ensure RTL-compatible fonts like Arabic Transparent, Times New Roman, or Urdu Typesetting are installed. 4. Forms and Reports 6i Specifics Forms 10g: Please help on Urdu Language Support

The fluorescent lights of the IT department hummed, a stark contrast to the quiet tension in the room. Omar, a veteran developer, stared at his monitor. He was tasked with a critical mission: migrating a legacy Urdu and Arabic reporting system to an Oracle 10g database using

The challenge wasn't just the code; it was the "ghost characters"—those dreaded question marks that appeared whenever someone typed in a right-to-left language.

"It’s all about the environment, not just the code," Omar muttered, opening the Windows Registry. He knew that for Developer 6i to talk to in Arabic or Urdu, the setting was the secret handshake. He navigated to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE and set the value to ARABIC_UNITED ARAB EMIRATES.AR8MSWIN1256

Next, he tackled the database itself. He ensured the 10g instance was created with a compatible character set, like AR8MSWIN1256 , to act as the perfect vessel for the script.

The final hurdle was the UI. In the Forms 6i Builder, he meticulously changed the Reading Order

property to 'Right-to-Left' and selected a font that actually supported the glyphs, like 'Traditional Arabic'.

He hit 'Run'. He typed "السلام عليكم" (Peace be upon you) into the field. The characters flowed beautifully from right to left, crisp and clear. The "ghosts" were gone. Omar leaned back, the hum of the lights now sounding like a victory song. on the specific Environment variables used in this setup?

Configuring Oracle Database 10g Developer 6i for Arabic and Urdu requires synchronizing character sets across the database, the client registry, and the operating system. 1. Database Character Set Configuration For a database to store Right-to-Left (RTL) characters, its NLS_CHARACTERSET must support them. Best Options: AR8MSWIN1256 (8-bit Arabic/Urdu) for efficiency or for universal support.

In Forms 6i, use the specific "UTF8" charset name rather than the newer "AL32UTF8". How to Check: For legacy maintenance

SELECT * FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET'; Changing Settings:

If the database is already created with a Western charset (like WE8MSWIN1252 ), you may need to use ALTER DATABASE CHARACTER SET INTERNAL_USE AR8MSWIN1256; (requires SYSDBA privileges and restricted mode). 2. Client-Side Registry (Developer 6i)

The Developer 6i client needs to know which character set to use when communicating with the database. Registry Path: and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE Setting NLS_LANG: Modify the value to match the database. Recommended Value: AMERICAN_AMERICA.AR8MSWIN1256 ARABIC_SAUDI ARABIA.AR8MSWIN1256 AMERICAN_AMERICA

as the first part keeps the developer interface in English while supporting Arabic/Urdu data entry. 3. Operating System Settings

The Windows OS must be configured to handle non-Unicode applications for these languages. System Locale: Control Panel Region and Language Administrative Change system locale . Set this to and restart. Input Language:

Ensure the Arabic or Urdu keyboard is added to the language bar so users can toggle between English and RTL input. 4. Forms 6i Property Settings To ensure proper visual display within your application: Writing Urdu or Arabic in Oracle Forms 6i


Log in as SYSDBA and run:

SELECT parameter, value 
FROM nls_database_parameters 
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

The NLS_LANG parameter on the client machine (where Forms/Reports Builder is installed) is critical. It informs the Oracle client how to translate data between the database and the application.

Location: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_DevSuiteHome (Path may vary based on installation home name).

Recommended Setting:

Rationale: Developer 6i does not support AL32UTF8 natively as a client character set. If the database is AL32UTF8, the client NLS_LANG should typically be set to AR8MSWIN1256. This forces the Oracle Net layer to perform the translation from the database Unicode to the Windows Arabic code page used by the Developer tools.

Cause: FORMS60_CHARACTER_SET mismatch with OS codepage. Solution: In Windows Control Panel -> Region -> Administrative -> Change system locale to Arabic (Saudi Arabia) or Urdu (Pakistan). Reboot.