影響Oracle漢字顯示的字元集問題

來源:互聯網
上載者:User

在國內外大中型資料庫管理系統中,把 ORACLE 作為資料庫管理平台的使用者比較多。

ORACLE 不論是資料庫管理能力還是安全性都是無可非議的,但是,它在漢字資訊的顯示方面著實給中國使用者帶來不少麻煩,筆者多年從事 ORACLE 資料庫管理,經常收到周圍使用者和外地使用者反映有關 ORACLE 資料庫漢字顯示問題的求援信,主要現象是把漢字顯示為不可識別的亂碼,造成原來大量資訊無法使用。本文將就這一問題產生的原因和解決辦法進行一些探討,供存在這方面問題的使用者朋友參考。

1 、原因分析

通過對使用者反映情況的分析,發現字元集的設定不當是影響 ORACLE 資料庫漢字顯示的關鍵問題。那麼字元集是怎麼一會事呢?字元集是 ORACLE 為適應不同語言文字顯示而設定的。用於漢字顯示的字元集主要有 ZHS16CGB231280 , US7ASCII , WE8ISO8859P1 等。字元集不僅需在伺服器端存在,而且用戶端也必須有字元集註冊。伺服器端,字元集是在安裝 ORACLE 時指定的,字元集登記資訊儲存在 ORACLE 資料庫字典的 V$NLS_PARAMETERS 表中;用戶端,字元集分兩種情況,一種情況是 sql*net 2.0 以下版本,字元集是在 windows 的系統目錄下的 oracle.ini 檔案中登記的;另一種情況是 sql*net 2.0 以上(即 32 位)版本,字元集是在 windows 的系統註冊表中登記的。要在用戶端正確顯示 ORACLE 資料庫漢字資訊,首先必須使伺服器端的字元集與用戶端的字元集一致;其次是載入到 ORACLE 資料庫的資料字元集必須與伺服器指定字元集一致。因此,把使用者存在的問題歸納分類,產生漢字顯示異常的原因大致有以下幾種:

1. 1 伺服器指定字元集與客戶字元集不同,而與載入資料字元集一致。

這種情況是最常見的,只要把用戶端的字元集設定正確即可,解決辦法見 2.1 。

1. 2 伺服器指定字元集與客戶字元集相同 , 與載入資料字元集不一致。

這類問題一般發生在 ORACLE 版本升級或重新安裝系統時選擇了與原來伺服器端不同的字元集,而恢複載入的備份資料仍是按原字元集卸出的場合 , 以及載入從其它使用不同字元集的 ORACLE 資料庫卸出的資料的情況。這兩種情況中,不管伺服器端和用戶端字元集是否一致都無法顯示漢字。解決辦法見 2.2 。

1.3 伺服器指定字元集與客戶字元集不同 , 與輸入資料字元集不一致。

這種情況是在用戶端與伺服器端字元集不一致時,從用戶端輸入了漢字資訊。輸入的這些資訊即便是把用戶端字元集更改正確,也無法顯示漢字。解決辦法見 2.3 。

2 .解決辦法

下面將分別對上述三種情況給出解決辦法。為了敘述方便,假設用戶端使用 WINDOWS95/98 環境,並已成功地配置了 TCP/IP 協議,安裝了 ORACLE 的 sql*net , sql*pluse 產品。

2.1 設定用戶端字元集與伺服器端字元集一致

假設當前伺服器端使用 US7ASCII 字元集。

( 1 )查看伺服器端字元集

通過用戶端或伺服器端的 sql*plus 登入 ORACLE 的一個合法使用者,執行下列 SQL 陳述式:

SQL > select * from V$NLS_PARAMETERS

parameter value

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

… . ….

NLS_CHARACTERSET US7ASCII

NLS_SORT BINARY

NLS_NCHAR_CHARACTERSET US7ASCII

從上述列表資訊中可看出伺服器端 ORACLE 資料庫的字元集為 'US7ASCII' 。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.