2014-07-25 87 views
2

我正在將一些數據序列化到xml,然後將輸出寫入Oracle數據庫。寫入Oracle數據庫時出現錯誤字符串

序列化的數據可能會很長,並且寫入列類型LONG的(它永遠不會達到長,這是像32000個字符的最大值)

有時我的數據寫入,它似乎是腐敗的,只是顯示「?」和許多其他控制字符,有時寫作完美。

我使用的函數總是返回XML而沒有問題,寫入數據時會出現問題。

這是我的串行功能:

Private Function Serialize(myObject As object) 

    //serialize the object to a string... 

    Dim x = New System.Xml.Serialization.XmlSerializer(myObject .[GetType]()) 
    Dim stringWriter = New StringWriter() 
    x.Serialize(stringWriter, myObject) 

    Dim test = stringWriter.ToString() 
    Return stringWriter.ToString() 

    stringWriter.Close() 

End Function 

我接着寫datawhich使用NHibernate返回到數據庫,因爲它是很長,一直沒有工作失敗了很久,我將不包括此代碼時間。問題似乎在於Oracle如何解釋數據。

我的單元作業提交時沒有任何錯誤 - 只有在oracle收到數據時纔會損壞數據。

UPDATE

如果我複製的StringWriter輸出,然後粘貼到數據庫中,我可以沒有問題

+2

請不要使用'LONG',它已被完全棄用。使用'XMLType'或者至少'CLOB'來代替... –

+0

沒有意識到它已被棄用,謝謝這個作品現在! – DNKROZ

回答

0

正如意見建議由wolφi提交此列。

解決方法是使用CLOB作爲列數據類型。我的Oracle版本中不存在XMLType

相關問題