2011-10-25 72 views
2

我們有一個訪問Oracle 11g數據庫的Web服務(封閉源代碼)。它最近從10g升級到11g。它返回記錄,其中一列是NCLOB類型。發送到webservice的字符串可能包含Windows NewLines,\ r \ n。不幸的是,我不確定Web服務如何處理從DB發送/接收的數據。Oracle 11g處理換行符的方式與10g不同

在10g中,從NCLOB列返回的字符串是Big Endian Unicode,並且所有'\ r'都被刪除,因此新行將返回爲\ n。

在11g中,從NCLOB返回的字符串是ASCII編碼的,所有'\ r'都是用'\ n'替代,因此新行返回爲\ n \ n。

這是否合理?坦率地說,我們一直在處理Oracle新行版問題(10g的行爲),我很確定這是升級到11g的結果。有沒有人有關於10g和11g之間的區別的信息,與換行符或轉義字符序列存儲或NCLOB數據類型有關?我試圖在這裏進行破壞控制並指向Oracle 11g,但需要一些證據。

回答

0

如何在客戶端上解釋這取決於客戶端的nls設置。你需要檢查你的客戶端設置是否改變。尤其是檢查NLS_LANG環境變量的設置。這需要根據用戶進行設置。在Windows中,這可能會在註冊表中設置。

+0

不幸的是,我的客戶端應用程序沒有直接訪問Oracle數據庫。我正在與一個我沒有控制權或知名度的Web服務進行交互。 –

+0

當你在第一句話中說「this」時,你是指大字尾,新字符還是兩者? –

+0

我指的是你的nls客戶端設置。如果您使用的是Web服務,則需要了解Web服務如何連接到數據庫。 – steve

相關問題