使用PLSQL Developer和DbVisualizer、SQLDBx查詢oracle數據庫時出現亂碼


使用PLSQL Developer和DbVisualizer查詢oracle數據庫時,出現查詢數據中文亂碼情況。

查看了一下數據庫編碼格式
select * from v$nls_parameters;

查看編碼值為WE8ISO8859P1。而電腦環境變量NLS_LANG的值為AMERICAN_AMERICA.ZHS16GBK。更改為
AMERICAN_AMERICA.WE8ISO8859P1之后重啟工具就好了。如果沒有此環境變量,可以新建一個,將編碼值更改為一致。

我的機器到此就好使了,據說有的需要更改注冊表中值。

運行---->regedit-------->F3查找NLS_LANG----->修改注冊表(謹慎)

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO/NLS_LANG

該項值改為和數據庫服務端一致

注:如果不放心,修改該鍵值:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/ID0/NLS_LANG。

 

注意:配置環境變量的方式,可能導致SqlDBx亂碼,運行編碼相關文件后,需要去除環境變量,SqlDBx才好使。

 

附: http://www.2cto.com/database/201307/227445.html 

PLSQL顯示亂碼-無法進行中文條件查詢解決
 
原因:
 
PLSQL亂碼問題皆是ORACLE服務端字符集編碼與PLSQL端字符集編碼不一致引起。類似亂碼問題都可以從編碼是否一致上面去考慮。
 
解決:
 
1. 查詢 Oracle服務端字符集編碼,獲取NLS_CHARACTERSET字段值:
 
執行
sql代碼  
select * from v$nls_parameters  

           保存查詢到的值,如:NLS_CHARACTERSET = AL32UTF8

 2. 查詢Oracle服務端語言信息:
 
執行
sql代碼  
NLS_CHARACTERSET  
SELECT 'AMERICAN_AMERICA.' || PROPERTY_VALUE  
FROM DATABASE_PROPERTIES  

    保存查詢到的值,如:AMERICAN_AMERICA.AL32UTF8

 
       3. 設置本地環境變量。(PLSQL優先從環境變量中獲取屬性)
 
   右擊 我的電腦 -> 屬性 -> 告警 系統屬性 -> 高級 -> 環境變量 -> 系統變量欄
   新增如下兩條記錄:
   NLS_CHARACTERSET = AL32UTF8

   NLS_LANG = AMERICAN_AMERICA.AL32UTF8

 4. 重啟PLSQL,OK。

 


免責聲明!

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



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