Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用Simple.Data.Oracle时发生缓冲区溢出错误_Sql_Oracle_Orm_Simple.data - Fatal编程技术网

Sql 使用Simple.Data.Oracle时发生缓冲区溢出错误

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在表中插入数据。我试图在其中一列中插入一个非常大的值,它给了我以下错误

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;如果查看字典,将CLOB映射到
DBType.String

{"CLOB", DbType.String},
这表明它应该映射到
DBType.Object
。虽然映射在应用程序中发生了很小的变化,但CLOB仍然是一个对象

我不知道决定CLOB是字符串的原因,但在我看来,您有几个选择:

  • 在GitHub上提交一个bug报告,并准备好被告知它不是bug
  • 拉取一个版本并自己更改它——请注意,由于CLOB被假定为一个字符串,因此可能需要进行很多更改
  • 使用
    DBMS\u LOB.SUBSTR
    并使用offset参数将CLOB“分块”为所需数量的字符串

  • 谢谢Ben,但是我想插入整个值,在我的情况下,使用子字符串将不会有用。他们是不是在Simple.Data.Oracle中声明CLOB类型参数的某种方式?感谢Ben,我最终使用ODP.Net来处理这个特定的案例,因为我实在无法花费更多的时间来寻找一个永久性的解决方案。