PlsqlNLSLanguage

Specifies the NLS_LANG for this DAD.

This setting overrides the NLS_LANG environment variable for a database session, and defines some important NLS properties of the HTTP response, including the response character set.

If the PlsqlNLSLanguage parameter is different from the backend database NLS_LANG value, then mod_plsql will issue an ALTER SESSION statement every time a new database connection is created for the DAD. The actual statement issued is alter session set nls_language= nls_territory=

The character set portion of this setting is used by the networking layers below Oracle OCI to convert client string data to/from the database character set. This setting defines three things:

Syntax:
PlsqlNLSLanguage [string]
Default:
[none]
Example:
PlsqlNLSLanguage German_Germany.WE8MSWIN1252
PlsqlNLSLanguage American_America.UTF8

Tips for PlsqlNLSLanguage

You can determine the setting needed for PlsqlNLSLanguage by doing

  1. Connecting to the target database using SQL*Plus
  2. Running the query:

    select parameter, value
    from nls_database_parameters
    where parameter in ( 'NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET' );

    Sample outcome:

    PARAMETER                   VALUE
    --------------------------- -------------------
    NLS_LANGUAGE                AMERICAN
    NLS_TERRITORY               AMERICA
    NLS_CHARACTERSET            WE8MSWIN1252

Most applications have PlsqlTransferMode set to Char which means that the character set in PlsqlNLSLanguage needs to match the character set of the backend database. In one special case, where the database and mod_plsql are both using fixed-size character sets, and the character set width matches, the character set can be different. In either case, the response character set will always be the DAD character set.

For Portal, this setting should match the NLS_LANG of the back-end database. If PlsqlTransferMode is set to Raw, then this parameter can be ignored

In older versions, this parameter was called nls_lang