Oracle數據庫sqlplus與plsqldev解決亂碼


(出現亂碼 解決方法留存)

 

問題描述 :

  在用eclipse使用jdbc插入中文數據的時,數據用plsqldev查詢時,正常顯示中文,但是用sqlplus查詢時,為中文亂碼,當用plsqldev直接插入中文時,也直接會出現亂碼,用sqlplus插入的中文,plsqldev讀出亂碼---> plsqldev與sqlplus出現亂碼不一致情況

解決    :

  1)使用查詢語句

select * from v$nls_parameters;

  查詢到的 

NLS_CHARACTERSET                                                 AL32UTF8 --主要是看這個編碼

  網上解決方式一,修改注冊表

路徑:regedit>>HKEY_LOCL_MACHINE>>SOFTWARE>>ORALCE>>KEY_ORADB11G_HOME1

NLS_LANG的值設置為SIMPLIFIED CHINESE_CHINA.ZHS16GBK   --主要是修改后邊的字符編碼即可

  疑問:數據庫明明是 AL32UTF8 編碼,客戶端為什么修改為GBK編碼 才能正常顯示。。大體可能數據庫的資源,在控制台顯示的時候會有一個默認轉碼,設置為GBK才能正常顯示。。。這個解決方法只能解決sqlplus的亂碼,而不能解決plsqldev的亂碼,有可能是我裝的是64位數據庫,又裝了一個32位的客戶端,plsqldev是依靠32位,所以這樣的修改對plsqldev沒有影響

  網上解決方式二,修改環境變量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
--加入一個系統環境變量

  這樣,plsqldev與sqlplus讀取時,都會先找系統環境變量,如果存在nls_lang變量,就不需要讀取注冊表了。。

 

最終解決方式

選擇方法二,直接修改環境變量,不需要修改注冊表,兩者都會起作用


免責聲明!

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



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