11 Globalization Support

Oracle Database Free is configured by default to process character data in all supported languages simultaneously:

  • The database is created with the Unicode AL32UTF8 character set. AL32UTF8 is the recommended database character set suitable for storing data in practically any language. Multiple languages can be mixed even in a single character value. While not a recommended option, you can modify the CHARSET parameter in the /etc/sysconfig/oracle-free-23ai.conf configuration file to any other supported database character set before running /etc/init.d/oracle-free-23ai configure .

    Supported database character sets are listed in tables A-4 and A-6 in Appendix A of the Oracle Database Globalization Support Guide . Character sets from Table A-4 are preferred over character sets from Table A-6 because they contain more comprehensive character repertoires.

  • Oracle Database Free supports the same globalization features that Oracle Database Enterprise Edition (EE) provides.

Setting Language and Locale Preferences for Client Connections

Configure client applications connecting to an Oracle Database according to your locale preferences and your I/O device character set.

You must configure client applications connecting to an Oracle Database according to your locale preferences and your I/O device character set. If your applications do not have their own specific methods to configure locale preferences, then the method you use to configure an Oracle database client connection depends on the access API you use to connect to the database. Check your application documentation, before you configure locale preferences for your applications.

For applications that connect to Oracle Databases using Oracle Call Interface (OCI) use NLS_LANG and other client settings with names that start with NLS_ to set the locale conventions and client character set for Oracle Database sessions. It is important that you set the character set part of the NLS_LANG value properly. The Oracle character set whose name you set in NLS_LANG must correspond to the character encoding used by your I/O devices. For Linux, it is the character encoding of the terminal or terminal emulator, and usually corresponds to what the locale command reports. For Microsoft Windows, it is either the ANSI Code Page (for GUI applications), such as WE8MSWIN1252, or the OEM Code Page (for Console mode applications), such as US8PC437. By doing this, the OCI API is notified about the character set of data that it receives from the application. OCI can then convert this data correctly to and from the database character set.

You can specify NLS_LANG and the other NLS settings as environment variables. On Microsoft Windows, you can also specify them as Registry settings. Environment variable values take precedence over Registry values.

Oracle Universal Installer sets a default value for the NLS_LANG setting in Registry when it creates a new Oracle home on Microsoft Windows. The NLS_LANG value is based on the language of the Windows user interface, which is the language of Windows menu items and dialog box labels. The installer does not set NLS_LANG on Linux and other UNIX system-based operating systems.

Caution:

Failure to set the client character set correctly can cause data loss.

Java applications that connect to Oracle Databases by using Oracle JDBC do not use NLS_LANG. Instead, Oracle JDBC maps the default locale of the Java VM in which the application runs to the Oracle Database language and territory settings. Oracle JDBC then configures the connected database session using these settings. Because Java works internally in Unicode, the client character set is always set to Unicode. Unless an application explicitly changes it, the default locale of the Java VM is set based on the locale of the user operating system on which the Java VM runs. Check your Java VM documentation for information about configuring the Java VM default locale.

Note:

In 3-tier architecture deployments, application servers that are database clients can have settings in their configuration files that specify the NLS_LANG value or the Java VM locale. Check the documentation accompanying these servers.

See Also:

Oracle Database Globalization Support Guide for more information about configuring user locale preferences