[原創] 查看與修改oracle資料庫字元集

來源:互聯網
上載者:User

標籤:style   color   使用   io   檔案   資料   for   art   


NLS_LANG參數格式

    NLS_LANG=<language>_<territory>.<client character set>

    Language:顯示oracle訊息,校正,日期命名
    Territory:指定預設日期、數字、貨幣等格式
    Client character set:指定用戶端將使用的字元集

    例如:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    AMERICAN是語言,AMERICA是地區,ZHS16GBK是用戶端字元集


1. 查看伺服器端字元集:

視圖 "nls_database_parameters" 來源於props$,是表示資料庫的字元集。 props$是建立資料庫時儲存在資料庫中的資訊。

select * from nls_database_parameters where parameter in (‘NLS_LANGUAGE‘,‘NLS_TERRITORY‘,‘NLS_CHARACTERSET‘);

select userenv(‘language‘) from dual;


// 樣本

SQL> select userenv(‘language‘) from dual;

USERENV(‘LANGUAGE‘)
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

SQL>

 

2. 查看執行個體字元集:

視圖 "nls_instance_parameters" 來源於v$nls_parameters,表示會話自己的設定,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設定,將與nls_instance_parameters一致。

select * from nls_instance_parameters where parameter in (‘NLS_LANGUAGE‘,‘NLS_TERRITORY‘,‘NLS_CHARACTERSET‘);


視圖 "nls_instance_parameters" 由參數檔案決定,只受參數檔案的影響,而不受環境變數影響。

 


3. 查看會話字元集:

select * from nls_session_parameters where parameter in (‘NLS_LANGUAGE‘,‘NLS_TERRITORY‘,‘NLS_CHARACTERSET‘) ;

select * from v$nls_parameters where parameter in (‘NLS_LANGUAGE‘,‘NLS_TERRITORY‘,‘NLS_CHARACTERSET‘) ;


視圖 "nls_session_parameters" 取值與V$NLS_PARAMETERS,它的查詢結果預設會從nls_instance_parameters繼承

但是如果,我們在環境變數或者通過ALTER SESSION 改變了nls的相關參數,則會覆蓋預設值。

 

// 設定

alter session set NLS_LANGUAGE=AMERICAN ;

alter session set NLS_LANGUAGE="SIMPLIFIED CHINESE" ;

// 樣本

SQL> col value format a30
SQL> col parameter format a30
SQL> select * from v$nls_parameters;

PARAMETER                            VALUE
------------------------------ ------------------------------
NLS_LANGUAGE                       SIMPLIFIED CHINESE           <====語言
NLS_TERRITORY                      CHINA                                <====地區
NLS_CURRENCY                       ¥
NLS_ISO_CURRENCY                CHINA
NLS_NUMERIC_CHARACTERS         .,
NLS_CALENDAR                        GREGORIAN
NLS_DATE_FORMAT                  DD-MON-RR
NLS_DATE_LANGUAGE              SIMPLIFIED CHINESE
NLS_CHARACTERSET                ZHS16GBK                        <====資料庫字元集 (此參數須與伺服器字元集一致)
NLS_SORT                               BINARY
NLS_TIME_FORMAT                   HH.MI.SSXFF AM

PARAMETER                               VALUE
------------------------------ ------------------------------
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

已選擇19行。

SQL>

 

4. 查看用戶端字元集

windows: start --> run --> regedit --> Ctrl+F --> NLS_LANG

unix:    echo $NLS_LANG


// 設定用戶端字元集

windows平台下

C:\> set nls_lang=AMERICAN_AMERICA.ZHS16GBK 

這樣就隻影響這個視窗裡面的環境變數。

或者,修改註冊表裡面相應OracleHome的NLS_LANG的值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK,可以永久生效。

 

unix平台下,就是環境變數NLS_LANG。

$export $NLS_LANG="AMERICAN_AMERICA"."ZHS16GBK"


如果檢查的結果發現server端與client端字元集不一致,請統一修改為同server端相同的字元集。

 

 


 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.