oracle 輸出中文亂碼問題解決方案

gholay發表於2014-01-07
在plsql中使用DBMS_OUTPUT.PUT_LINE輸出時,如果有中文,會出現亂碼。

原因:客戶端和伺服器端資料庫編碼不一致造成的.

解決辦法:修改客戶端的編碼的變數(NLS_LANG)
1. 檢視伺服器端編碼
select tab1.aa || '_' || tab2.bb || '.' || tab3.cc
  from (select VALUE$ aa from sys.props$ where name = 'NLS_LANGUAGE') tab1,
       (select VALUE$ bb from sys.props$ where name = 'NLS_ISO_CURRENCY') tab2,
       (select VALUE$ cc from sys.props$ where name = 'NLS_CHARACTERSET') tab3;

2. 檢視windows中oracle客戶端的編碼
使用windows命令:regedit.exe,到下面指定路徑查詢客戶端編碼
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb11g_home1
找到NLS_LANG變數,替換為第一步查詢伺服器端編碼。

3. 重新啟動客戶端,再次使用DBMS_OUTPUT.PUT_LINE輸出中文時不會出現中文亂碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29196873/viewspace-1068107/,如需轉載,請註明出處,否則將追究法律責任。

相關文章