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

炎炎設計
TA貢獻1808條經(jīng)驗 獲得超4個贊
通過DBLINK查詢過來時已經(jīng)是亂碼,這時再用CONVERT沒有用。先在對端建個視圖,轉(zhuǎn)換成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;

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