Sql 使用Simple.Data.Oracle时发生缓冲区溢出错误
我正在使用Simple.Data.Oracle在表中插入数据。我试图在其中一列中插入一个非常大的值,它给了我以下错误 ORA-22835:lille至CONVERTERING af CLOB至CHAR eller BLOB至RAW的缓冲区(faktisk:19471,maksimum:4000)Sql 使用Simple.Data.Oracle时发生缓冲区溢出错误,sql,oracle,orm,simple.data,Sql,Oracle,Orm,Simple.data,我正在使用Simple.Data.Oracle在表中插入数据。我试图在其中一列中插入一个非常大的值,它给了我以下错误 ORA-22835:lille至CONVERTERING af CLOB至CHAR eller BLOB至RAW的缓冲区(faktisk:19471,maksimum:4000) 我在该项目中遥遥领先,目前无法转储Simple.Data.Oracle并寻找其他替代方案…您正在将CLOB转换为某种描述的字符串。SQL中一个字符串最多可以包含4000个字符,所以若要将CLOB的子字符
我在该项目中遥遥领先,目前无法转储Simple.Data.Oracle并寻找其他替代方案…您正在将CLOB转换为某种描述的字符串。SQL中一个字符串最多可以包含4000个字符,所以若要将CLOB的子字符串放入一个字符中,则需要获取该子字符串 最简单的方法是使用 它看起来不像
simple.data.oracle
本地支持CLOB;如果查看字典,将CLOB映射到DBType.String
:
{"CLOB", DbType.String},
这表明它应该映射到DBType.Object
。虽然映射在应用程序中发生了很小的变化,但CLOB仍然是一个对象
我不知道决定CLOB是字符串的原因,但在我看来,您有几个选择:
DBMS\u LOB.SUBSTR
并使用offset参数将CLOB“分块”为所需数量的字符串谢谢Ben,但是我想插入整个值,在我的情况下,使用子字符串将不会有用。他们是不是在Simple.Data.Oracle中声明CLOB类型参数的某种方式?感谢Ben,我最终使用ODP.Net来处理这个特定的案例,因为我实在无法花费更多的时间来寻找一个永久性的解决方案。