oracle11g字符集出現亂碼的問題

oracle11g字符集出現亂碼的問題
系統環境:win7旗艦版,今天安裝oracle11g ,有兩個安裝文件
win32_11gR2_database_1of2.zip
win32_11gR2_database_2of2.zip
解壓後,每一個文件都有個database文件,將第二個的database文件覆蓋到第一個中。點擊setup.exe直接安裝。在安裝的過程當中,因爲考慮到之後在開發的過程當中會使用utf-8的字符集,因此在安裝的時候選擇的是utf-8的字符集(默認的是gbk,並且10g的不須要選擇字符集的編碼方式)。安裝完成後,在DOS下鏈接oracle,一切正常;可是使用pl/sql dev鏈接的時候,出現以下提示:
大概的意思是數據庫的character set 是AL32UTF8  client character set是ZHS16GBK,須要到註冊表中修改統一:
具體修改方法是:

oracle11g更改字符集AL32UTF8爲ZHS16GBK

Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. 
Character set conversion may cause unexpected results. 
Note: you can set the client character set through the NLS_LANG environment variable or the NLS_LANG registry key in 
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1.sql

SIMPLIFIED CHINESE_CHINA.ZHS16GBK 包含 AMERICAN_AMERICA.AL32UTF8. 
這但是個麻煩事,不是改客戶端字符集的問題。要改數據庫的字符集。我是本身筆記本上面的oracle11g,因此膽子仍是很大的: 
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: new character set must be a superset of old character set 
提示咱們的字符集:新字符集必須爲舊字符集的超集,這時咱們能夠跳過超集的檢查作更改: 
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 
--咱們看到這個過程和以前ALTER DATABASE CHARACTER SET操做的內部過程是徹底相同的,也就是說INTERNAL_USE提供的幫助就是使Oracle數據庫繞過了子集與超集的校驗. 
SQL> select * from v$nls_parameters;  
SQL> shutdown immediate; 
SQL> startup 
SQL> select * from v$nls_parameters; 數據庫

相關文章
相關標籤/搜索