Oracle數據庫使用另一種語言從11i移至R12。更改語言後進行CLOB解碼
- 古老的語言
AMERICAN_AMERICA.WE8MSWIN1252
- 新的語言
AMERICAN_AMERICA.AL32UTF8
當我嘗試讀取與CLOB數據類型字段的東西,錯誤的字符被讀取。 我試圖用CONVERT
和UTL_RAW.CONVERT
,但它沒有幫助。
我使用PL/SQL連接到數據庫。
Oracle數據庫使用另一種語言從11i移至R12。更改語言後進行CLOB解碼
AMERICAN_AMERICA.WE8MSWIN1252
AMERICAN_AMERICA.AL32UTF8
當我嘗試讀取與CLOB數據類型字段的東西,錯誤的字符被讀取。 我試圖用CONVERT
和UTL_RAW.CONVERT
,但它沒有幫助。
我使用PL/SQL連接到數據庫。
檢查客戶機和服務器機器上的NLS_LANG
環境變量是否爲AMERICAN_AMERICA.AL32UTF8
。
現在客戶端上的語言是'AMERICAN_AMERICA.WE8MSWIN1252'。我將它更改爲「AMERICAN_AMERICA.AL32UTF8」,但它沒有幫助。此外,我還需要在客戶端機器上使用AMERICAN_AMERICA.WE8MSWIN1252來連接舊的DB。 – IgorCh
試函數轉換 http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm
我使用它交談VARCHAR2字段,但在文檔編寫,它允許轉換BLOB和CLOB
CONVERT(:場, 'WE8MSWIN1252', 'utf-8')
祝你好運
問題只發生在'CLOB'字段? 'VARCHAR'字段也是關注的嗎? –
我發現問題只有'CLOB','VARCHAR'顯示正確。 – IgorCh
數據庫是如何遷移的?您是否收到出口/進口警告?請提供一個問題的例子。對單個字符使用DUMP功能來確保字符集。 –