PLSQL中文顯示亂碼,可能是oracle客戶端和服務器端的編碼方式不一樣。網上有很多帖子介紹解決方法,但都說得不清不楚的,這裏我將自己經過實踐和理解的真正的解決方案分享給大家。
1. 查詢ORACLE服務器的語言、地域和字符集
select * from nls_database_parameters;
查詢結果如下圖,
下圖NLS_LANGUAGE 表示“語言”,NLS_TERRITORY 表示“地域”,NLS_CHARACTSET 表示“字符集”,將他們三個按照“語言_地域.字符集”的格式拼接起來,就有了“AMERICAN_AMERICA.ZHS16GBK”(注意:這裏要根據你自己的ORACLE服務器的這三個值進行拼接哦~不要簡單的複製粘貼)
2.設置本地環境變量:NLS_LANG,
進入 我的電腦,屬性,高級,環境變量,添加1項:
NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
(注意:這裏要根據你的ORACLE服務器的這三個值進行拼接哦~不要複製粘貼)
OK,重新打開PLSQL dev ,中文顯示正常拉~~
還有一點需要注意的是:網上很多方案說要修改本地註冊表中的“HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraClient11g_home1”項,其實這是不對的,這已註冊表項是本地ORACLE的字符集,跟你要訪問的服務器ORACLE沒有關係的。