To verify, if a specific NLS related value has been set, you can
query the NLS_SESSION_PARAMETERS view once you are connected from your client
session. This view will give you the current session settings of the NLS related
parameters, with one exception: the character set part of NLS_LANG. You can simply
issue:
SELECT * FROM NLS_SESSION_PARAMETERS;
PARAMETER
VALUE
------------------------------ ------------------
NLS_LANGUAGE
AMERICAN
NLS_TERRITORY
AMERICA
NLS_CURRENCY
$
NLS_ISO_CURRENCY
AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR
GREGORIAN
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
AMERICAN
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR
HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY
$
NLS_COMP
BINARY
NLS_LENGTH_SEMANTICS
BYTE
NLS_NCHAR_CONV_EXCP
FALSE
To get the characterset part, depending on how your
platform is, you can issue:
SQL>@ .[%NLS_LANG%]
SP2-0310: unable to open file
".[AMERICAN_AMERICA.WE8ISO8859P1]"
Altough you will get an error message like the one in the above
example, the entry in the brackets represents the current session specific NLS_LANG
value including the character set part.
If you get:
SP2-0310: unable to open file
".[%NLS_LANG%]"
The variable was not set either as an environment variable or in
the registry and the default AMERICAN_AMERICA.US7ASCII is used.
SQL> ! echo $NLS_LANG
AMERICAN_AMERICA.WE8ISO8859P1
If you get:
NLS_LANG: Undefined variable
The variable was not set and the default AMERICAN_AMERICA.US7ASCII
is used.
On the Windows 2000 / NT environment variables are usually set in
the Registry. Every ORACLE_HOME has its own entry in the form:
HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOMEn
HOMEn, is the value you took out of the Oracle.Key-File (eg:
HOME2)
To find out, which HOMEn is the correct one for the ORACLE_HOME
your
application uses, check the ORACLE.KEY file that is located in the
$ORACLE_HOME/bin directory. This text file will contain an entry with
the relevant HOMEn.
For the Windows 2000 / NT environment you must set the WE8PC850
characterset. The CMD Utilities in Windows 2000 environment doesn't understand the
ISO-8859 characterset.