小弟現在做一個項目,需要用到另外一數據庫,我現在在本地建立db_link將數據遷移至本地,但是那個數據庫編碼為US7ASCII,本地客戶端數據庫 編碼為ZHS16GBK 于是產生中文亂碼,類似于=p:~OX9zK0>V4z?*5c#1 這樣一些字符串。 現在通過convert 函數查詢,查詢語句為select convert(nsrmc,'US7ASCII','ZHS16GBK') from dj_nsrxx@dblink_gs1 ; 不行,查出的字符為:??????????,我試了好幾種編碼都不行。我這邊不能修改本地的編碼方式,因為本地服務器還有其他幾個實例,這種情況應該怎么樣處理,急。
2 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
通過DBLINK查詢過來時已經是亂碼,這時再用CONVERT沒有用。先在對端建個視圖,轉換成RAW類型CREATE VIEW V_DJ_NSRXX AS SELECT utl_raw.cast_to_raw(nsrmc) nsrmc FROM dj_nsrxx;然后再通過DBLINK查詢SELECT utl_raw.cast_to_varchar2(nsrmc) FROM v_dj_nsrxx@dblink_gs1;

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
小弟新手,不太明白你說的意思啊,現在問題是,在遠程的那臺服務器上查詢顯示是正常的,但本地在PLSQL上通過db_link查詢顯示 中文亂碼,其它數值和英文字符都顯示正常。
添加回答
舉報
0/150
提交
取消