我們有一個訪問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,但需要一些證據。
不幸的是,我的客戶端應用程序沒有直接訪問Oracle數據庫。我正在與一個我沒有控制權或知名度的Web服務進行交互。 –
當你在第一句話中說「this」時,你是指大字尾,新字符還是兩者? –
我指的是你的nls客戶端設置。如果您使用的是Web服務,則需要了解Web服務如何連接到數據庫。 – steve