從oracle 8I開始,oracle 支持多種語言,可以使用戶通過本國語言與數據庫交互,
實現本國語言與數據庫交互的方法是用unicode字符集,unicode字符集有2种編碼方案utf-16 和utf-8。
支持unicode編碼的數據庫字符集類型有utf8,al32utf7,utfe,一般優先使用utf8.
這樣在同一台數據服務器上存儲不同類型語種的語言,而在讀取不同語言的客戶端配置不同的字符集。
Oracle 提供一系列參數可以定制數據庫和客戶機以適應本地格式,這些格式可以在數据庫創建后更改。
SYS AS SYSDBA on 2008-03-06 09:10:07 at ORCL>show parameter nls
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_calendar string
nls_comp string
nls_currency string
nls_date_format string
nls_date_language string
nls_dual_currency string
nls_iso_currency string
nls_language string AMERICAN
nls_length_semantics string BYTE
nls_nchar_conv_excp string FALSE
nls_numeric_characters string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_sort string
nls_territory string AMERICA
nls_time_format string
nls_time_tz_format string
nls_timestamp_format string
nls_timestamp_tz_format string
SYS AS SYSDBA on 2008-03-06 09:33:37 at ORCL>
NLS_LANGUAGE 參數:
設置客戶和服務器端的顯示語言
SYS AS SYSDBA on 2008-03-06 09:44:45 at ORCL>alter session set nls_language='TRADITIONAL CHINESE';
已更改階段作業.
在將語言改稱SIMPLIFIED CHESESE 或者TRADITIONAL CHINESE時,要在語言的英文名上加單引號。
SYS AS SYSDBA on 2008-03-06 09:49:15 at ORCL>alter session set nls_language=ENGLISH;
Session altered.
改稱英文時,不需要添加引號。
NLS_TERRITORY 參數:
NLS決定日期,時間,貨幣等的顯示格式,設置國家,或地區的英文名。
SYS AS SYSDBA on 2008-03-06 09:49:29 at ORCL>alter session set nls_territory=china;
Session altered.
默認的貨幣符號就會設成Y。
如果oracle 客戶端指定了NLS_LANG值,那麽連接時,在初始化參數中設置nls_territory值就會被nls_lang值覆蓋。
SYS AS SYSDBA on 06-MAR-08 at ORCL>alter session set nls_territory=america ;
Session altered.
SYS AS SYSDBA on 06-MAR-08 at ORCL>select ename,to_char(sal,'l99g999d99') from scott.emp;
ENAME TO_CHAR(SAL,'L99G999
---------- --------------------
SMITH $800.00
ALLEN $1,600.00
WARD $1,250.00
NLS_CALENDAR參數
這個參數設置日曆,默認的是公曆,此參數一般不用設置。
NLS_DATE_FORMAT 參數
默認值為nls_territory參數決定,典型的日期設計格式如下:dd-mm-rr
NLS_DATE_LANGUAGE參數
SYS AS SYSDBA on 06-MAR-08 at ORCL>alter session set 年nls_date_language=english;
Session altered.
SYS AS SYSDBA on 06-MAR-08 at ORCL>select to_char(sysdate,'day:dd month yyyy') from dual;
TO_CHAR(SYSDATE,'DAY:DDMONTHYYYY')
-----------------------------------
thursday :06 march 2008
NLS_TIMESTAMP_FORMAT參數
設置時間顯示格式 如:
SYS AS SYSDBA on 2008-03-06 at ORCL>alter session set nls_timestamp_format='yyyy-mm-dd hh:mi:s
s.ff';
Session altered.
SYS AS SYSDBA on 2008-03-06 at ORCL>select to_timestamp(sysdate) from dual;
TO_TIMESTAMP(SYSDATE)
---------------------------------------------------------------------------
2008-03-06 12:00:00.
NLS_TIMESTAMP_TZ_FORMAT 參數:
SYS AS SYSDBA on 2008-03-06 at ORCL>alter session set nls_timestamp_tz_format='yyyy-mm-dd hh:m
i:ss.ff tzh:tzm';
Session altered.
SYS AS SYSDBA on 2008-03-06 at ORCL>select to_timestamp_tz(sysdate) from dual;
TO_TIMESTAMP_TZ(SYSDATE)
---------------------------------------------------------------------------
2008-03-06 12:00:00. +08:00
tzh:tzm 時區時間:時區名稱
NLS_CURRENCY 參數
設置貨幣符號 $等,如果設置此參數,將覆蓋nls_territory參數
SYS AS SYSDBA on 2008-03-06 at ORCL>select to_char(hisal,'l099g999d99') from scott.salgrade;
TO_CHAR(HISAL, 'L099G9
---------------------
$001,200.00
'L099G9中的L表示貨幣符號
NLS_ISO_CURRENCY參數:
設置貨幣符號,ISO 貨幣符號是由字母組成的,例如,USD表示美元,CNY 表示人民幣。
SYS AS SYSDBA on 2008-03-06 at ORCL>alter session set nls_iso_currency=america;
Session altered.
SYS AS SYSDBA on 2008-03-06 at ORCL>select to_char(hisal,'c099g999d99') from scott.salgrade;
TO_CHAR(HISAL,'C09
------------------
USD001,200.00
USD001,400.00
USD002,000.00
USD003,000.00
USD009,999.00
c099g999d99 中的C表示用貨幣符號表示。
NLS_DUAL_CURRENCY參數
一般不用設置
NLS_MONETARY_CHARACTERS參數
設置表示金額的數字的小數點和分組分隔符,和後面的數字參數nls_numeric_characters 相似,如果nls_territory 設置為america, 那麽就用’1,001.01‘格式表示金額,’,‘表示組分隔符,用’.’表示小數點。
Nls_credit 和 nls_debit 貸符號和借符號,默認值由nls_territory決定,只能在客戶端的環境變量中設置。
NLS_NUMERIC_CHARACTERS 參數:
SYS AS SYSDBA on 2008-03-06 at ORCL>alter session set nls_numeric_characters=',.';
Session altered.
使用’ ,’表示分隔符,’.’表示小數點。
Nls_list_separator參數:
設置一連串數字的分隔符,通常用’;:,.’分開,列表分割符可以設置任何單字節字符,但不能和表示nls_numeric_characters的字符相同,否則會混淆。
NLS 的參數設置方法
初始化參數設置,環境變量設置,session設置。
初始化參數設置即修改初始化參數文件值,設之後永久有效,session設置只修改當前session的值,session結束后,設置也跟著消失,環境變量設置既修改環境變量值或從註冊表設置。
SYS AS SYSDBA on 2008-03-06 at ORCL>select * from nls_database_parameters;
PARAMETER VALUE
------------------------------ --------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/701141/viewspace-209680/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/701141/viewspace-209680/