oracle11g安裝完成后修改字符集


author : headsen chen

date:2018-05-10  10:27:16

 

oracle11g完成安裝后,由於默認安裝的時候無法指定字符集,所以手動修改字符集和10g版本一樣的字符集

查詢數據庫目前使用的字符集(這種字符集在使用中查詢數據會出現亂碼情況)

SQL> select userenv('langager') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8       #------------>默認安裝的字符集,要改的就是這個。   

 


2、數據庫啟動到RESTRICTED模式下做字符集修改(具體操作如下):

SQL>conn / as sysdba SQL>shutdown immediate; SQL>startup mount SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>alter database open; SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;   # --執行這句話會出現錯誤(可根據ORA-12712在網上查錯誤信息);

 


 

此錯誤信息提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:

執行下面這句話:
SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

查詢是否已修改
SQL>select * from v$nls_parameters; 此時有可能還沒有變過來,重啟數據庫就可以了

 

關閉數據庫
shutdown immediate
啟動數據庫
startup
查詢字符集是否修改成功
select * from v$nls_parameters;
經過上面操作就可以修改oracle數據庫字符集了

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

 

USERENV('LANGUAGE')
--------------------------------------------------- AMERICAN_AMERICA.ZHS16GBK    # ---------------> 這就是我們想要的字符集

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM