是這樣,我筆記本上通過VMWare Workstation裝了rhel6.5的虛擬linux環境,虛擬機上裝了oracle 11g R2服務器,然后用筆記本本地的PL/SQL Developer連接上虛擬機中的oracle server。
問題是,當我在secureCRT工具中登陸linux中的資料庫并新增一行中文資料時,在secureCRT中查詢資料能正常顯式中文,如下圖所示:

但是轉到developer中查看的時候則顯式亂碼,如圖示:

同樣的,當在developer新增中文資料時,在developer中查看顯式的是中文,但是到secureCRT中查看卻是亂碼。也就是說,developer和secureCRT之間不能正常顯式對方輸入的中文資料。
另外,如果是通過VMWare Workstation登陸linux并進入oracle然后新增一條中文資料的話,在Workstation中能正常顯式中文,轉到secureCRT中查看也能正常顯式中文,但是在developer中卻顯式亂碼。而在secureCRT新增的中文資料,在Workstation中能正常顯式;在developer中輸入中文資料,在Workstation中不能正常顯式。
總的來說,就是secureCRT和Workstation兩者之間能正常顯式對方輸入的中文資料,而developer不論是與secureCRT還是Workstation之間都不能正常顯式對方輸入的中文資料。
所以想問一下各位大神,這種情況怎么解決?其實作為解決辦法之一我知道只要堅持只在一端比如developer中輸入并且查看資料就可以了,但是我想知道為什么會出現這種狀況,以及怎么改正過來,希望大家指點指點!多謝啦!!!
uj5u.com熱心網友回復:
看一下你本地環境變數 nls_lang 這個設定的,和crt軟體的字符集設定。兩者要一樣。
uj5u.com熱心網友回復:
查看PLSQL客戶端使用的編碼和服務器端編碼不一致,將其改為一致即可。uj5u.com熱心網友回復:
secureCRT和Workstation都是直接使用的服務端,developer使用的是你本地客戶端,二者字符集不一致時就出現亂碼uj5u.com熱心網友回復:
查看Oracle字符集select userenv('language') from dual;
查看注冊表Orcale字符集:
運行->regedit->sortware->oracle->oraclehome選中查看NLS_LANG的值
是否和上一個查詢是否一致,改為相同。
uj5u.com熱心網友回復:
你可以用這條命令select userenv('language') from dual;查詢Oracle的字符集,然后在本機配置環境變數NLS_LANG :SIMPLIFIED CHINESE_CHINA.ZHS16GBK好多次我都直接用紅色字的變數值給配置好了然后重啟PL/sql就好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/97819.html
標籤:基礎和管理
上一篇:Oracle監聽和服務都能啟動,但是資料庫連接不上(包括SYS)(嘗試了好多解決方法仍未解決)?
下一篇:Oracle 大神進
