- National Language Support 即Globalization 分为5个 levels,这个排序是按照parameter的作用倒序排列的。简单说,一个statement的NLS设置,可以覆盖之前的4个级别的设置。
• The database
• The instance
• The client environment
• The session
• The statement
- 如果想获得当前DB运行时的NLS 设置可以看 v$nls_parameters 试图。参数的含义可以在Oracle 文档库很容易查到含义。
SQL> select * from v$nls_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_CHARACTERSET UTF8
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_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
- 针对以上提高的五个level可以分别看其对应的table来看设置,以session举例。
select ’session’loc,parameter,value from nls_session_parameters;
- NLS所有有效的value可以通过查询NLS_VALIDE_VALUES获得。
SQL> select * from v$nls_valid_values where parameter=’TERRITORY’;
PARAMETER VALUE
—————————— ——————————
TERRITORY AMERICA
TERRITORY UNITED KINGDOM
TERRITORY GERMANY
<output abbreviated…>
TERRITORY SERBIA AND MONTENEGRO
TERRITORY ARGENTINA
TERRITORY ECUADOR
TERRITORY PHILIPPINES
- 如果想了解更多Oracle NLS和字符集的基本知识,可以参看Eygle的文章《 字符集问题的初步探讨》