Linux 下修改Oracle 的字元集:WE8ISO8859P1 修改為 ZHS16GBK

來源:互聯網
上載者:User

問題描述:同事在Linux下安裝的Oracle,預設的字元集沒有修改,使用的是WE8ISO8859P1,不能夠支援中文,
 
問題表現為,用戶端錄入的中文資料可以顯示,提交之後再查詢出來後中文會顯示為???。問題出在Oracle服務端的字元集不支援中文導致。
 
可以通過:
 
select   userenv('language')   from   dual; 命令可以查看服務端的使用的字元集。

 

或者select   *   from   V$NLS_PARAMETERS;命令也可以
 
以及 select * from SYS.PROPS$;
 
確定了問題後就Google了一下,網上倒是有很多這方面的資料。可能是自己的環境和他們的不一致的原因,按照網上的那些步驟我的問題沒有解決。
 
問題根源找到了就好解決了,參考著網上的資料自己的解決步驟如下:
 
總的來說有兩個思路:
 
1、重新安裝
 
2、修改字元集
 
註:第一個方法沒有用,覺得重裝不是我喜歡的道道,解決問題是根本。所以我選擇的是第二種方式。
 
網上很多人說,Oracle服務端安裝好了之後字元集是不可以更改的,實踐證明是可以修改的,至少oracle8以上的版本都是可以修改的。
 
我的解決步驟:
 
1、ssh登入,切換到Oracle使用者
 
切換使用者命令:su -Oracle
 
之後用sqlplus登入Oracle,命令:
 
:sqlplus /nolog
 
:connect /as sysdba
 
這樣就登入了。
 
2、更改字元集
 
首先 sqlplus登入後,關閉Oracle資料庫
 
1.shutdown immediate ;    
2.startup mount ;    
3.alter  system enable restricted session ;     
4.alter  system  set  JOB_QUEUE_PROCESSES=0;     
5.alter  system  set  AQ_TM_PROCESSES=0;     
6.alter   database   open  ;     
7. alter database character set  INTERNAL_USE  ZHS16GBK;     
8.shutdown immediate ;    
9.startup ;    

 

註:一開始我按照上面的步驟沒有解決,因為在第7步的時候有的資料提示使用alter database character set ZHS16GBK;我試過,這個命令不行,我使用的是alter database character set INTERNAL_USE ZHS16GBK; 提示修改成功。同樣,如果在startup mount 下命令提示error的話,可以嘗試在startup restrict下運行第七步的命令。
 
以下是我的調試命令記錄,大家可以參考一下,那些提示錯誤的命令都是執行失敗的,可以不必管。
 
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
Oracle instance shut down.
SQL> startup mount
Oracle instance started.
 
Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size             104859216 bytes
Database Buffers          176160768 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> alter system enable restricted session;
 
System altered.
 
SQL> alter system set job_queue_processes=0;
 
System altered.
 
SQL> alter system set aq_tm_processes=0;
 
System altered.
 
SQL> alter database open;
 
Database altered.

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連結:http://www.linuxidc.com/Linux/2011-04/34359.htm

聯繫我們

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