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

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
通過(guò)DBLINK查詢過(guò)來(lái)時(shí)已經(jīng)是亂碼,這時(shí)再用CONVERT沒(méi)有用。先在對(duì)端建個(gè)視圖,轉(zhuǎn)換成RAW類型CREATE VIEW V_DJ_NSRXX AS SELECT utl_raw.cast_to_raw(nsrmc) nsrmc FROM dj_nsrxx;然后再通過(guò)DBLINK查詢SELECT utl_raw.cast_to_varchar2(nsrmc) FROM v_dj_nsrxx@dblink_gs1;

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