NLS_LANG Definition Overview

The ODBC installation supports multiple Oracle homes. Each ODBC driver is uniquely identified by the name of the Oracle home in which it is installed. Applications using Oracle ODBC drivers use the value of NLS_LANG for making decisions related to character set conversion. The character set portion of the NLS_LANG setting must be AMERICAN_AMERICA.WE8MSWIN1252. If your database was previously Oracle 8i, then you use AMERICAN_AMERICA.WE8ISO8859P1.

The ODBC driver installation uses the value of the Windows code page (ACP) and defines the value of NLS_LANG in the registry. The value of NLS_LANG should be verified for accuracy. Be sure to check for the NLS_LANG environment variable because it will override the registry setting. You may choose to delete the variable. For more information, see Defining the NLS_LANG as an Environment Variable.

You can define NLS_LANG for the Oracle Client in either of the following ways:

In the Registry (Microsoft Windows only)
Oracle Client and Server support the concept of multiple Oracle homes. What this means is that you can have multiple sets of Oracle binaries on the same computer. When you have multiple Oracle homes on the same computer, you have multiple registry entries for each home. NLS_LANG should be defined for each home.
As an environment variable
Although the Registry is the primary repository for environment settings, it is not the only place where environment parameters can be set. You can set the NLS_LANG as a System or User Environment Variable in the System properties.
If NLS_LANG is defined as an environment variable, it will be used for all Oracle homes. This option should be used with caution, especially for cases where there are multiple Oracle homes on the computer and some Oracle homes have different NLS_LANG settings. It may be best to delete it.