2011-03-28 75 views
0

hi 我們想用數據庫連接來連接一個數據庫來操作select,update或...命令,我們的目標數據庫是WE8ISO8859P1,而當前數據庫是AR8MSWIN1256 cahrset,但是當我們操作一個命令來查看數據時,所有NonEnglish字符顯得很奇怪,我們無法識別出現的文本,如果我們使用convert函數沒有改變,請幫助我們查看正確的字符與我們的數據庫鏈接。 感謝如何將不同字符集的數據轉換爲其他數據庫?

它不具有轉換職能A anaylse工作

選擇轉換(MENU_NAME, 'US7ASCII', 'WE8ISO8859P1'), 轉換(MENU_NAME, 'ar8mswin1256', 'WE8ISO8859P1'), 轉換((轉換( menu_name,'US7ASCII','WE8ISO8859P 1')),'ar8mswin1256','WE8ISO8859P1'), menu_name from T $ R_MENU @「TO201.US.ORACLE.COM」 WHERE MENU_ID = 601011;

結果是 EU?iY?C?ICa? OCOaI? E ???? ?C?IC 50 C 19嗎? EU?iY?C?ICa? OCOaI? E ???? ?C?IC 50 C 19嗎?

回答

1

大多數情況下,查詢Oracle數據庫時,不需要將數據從一個字符集轉換爲另一個字符集的函數:它會自動完成。客戶端請求數據將把字符串轉換爲它使用的任何字符集。

就你而言,你錯過了非英文字符,因爲他們的在WE8ISO8859P1中不存在

您可以在目標數據庫中使用NVARCHAR2而不是VARCHAR2來支持unicode字符。 NVARCHAR2專門設計用於在不修改數據庫字符集的情況下處理這些字符串。有關VARCHAR2和NVARCHAR2之間的差異,請參閱this SO question

相關問題