我正在使用Simple.Data.Oracle在表中插入數據。我試圖在其中一列中插入一個非常大的值,它給我提供以下錯誤:ORB-22835:用於存儲文件的緩衝區直到CLOB爲止ELB BLOB直到RAW(faktisk:19471,最大值:4000)使用Simple.Data.Oracle時緩衝區溢出錯誤
我是一個很長的路要走領先於項目不起轉儲Simple.Data.Oracle,尋找此刻其他候補......
我正在使用Simple.Data.Oracle在表中插入數據。我試圖在其中一列中插入一個非常大的值,它給我提供以下錯誤:ORB-22835:用於存儲文件的緩衝區直到CLOB爲止ELB BLOB直到RAW(faktisk:19471,最大值:4000)使用Simple.Data.Oracle時緩衝區溢出錯誤
我是一個很長的路要走領先於項目不起轉儲Simple.Data.Oracle,尋找此刻其他候補......
你一個CLOB轉換成一些描述的字符串。 SQL中的字符串中最多有4,000個字符,因此如果要將其放入字符中,您需要獲取CLOB的子字符串。
最簡單的方法是使用DBMS_LOB.SUBSTR
。
似乎simple.data.oracle
本身並不支持CLOB;如果你看一下the code for the DBTypeConverter
class字典中CLOB映射到DBType.String
:
{"CLOB", DbType.String},
儘管這是the documentation linked in the comments表明它應該被映射到DBType.Object
。雖然映射在11.2 documentation中稍有變化,但CLOB仍然是一個對象。
我不知道的原因,決定一個CLOB是一個字符串,但我看到它,你有幾種選擇:
DBMS_LOB.SUBSTR
並將CLOB「分塊」成與使用偏移參數所需的那樣多的字符串。感謝Ben,我最終在這個特定案例中使用了ODP.Net,因爲我真的無法承擔更多時間尋找永久解決方案。 –
謝謝本,但我想插入整個值取一個子字符串將不會對我有用。他們是在Simple.Data.Oracle中聲明CLOB類型參數的方式嗎? –