Oracle 使用Fluent NHibernate 2映射大字符串

Oracle 使用Fluent NHibernate 2映射大字符串,oracle,nhibernate,fluent-nhibernate,clob,Oracle,Nhibernate,Fluent Nhibernate,Clob,我的代码: public SendOrderMap() { Table("Sendorder"); Id(s => s.ID).GeneratedBy.Sequence("SEQ_SendOrder"); Map(s => s.YBID); Map(s => s.TITLE); Map(s => s.MESSAGE).CustomSqlType("NCLOB").CustomType("StringClob"); } 当它依赖于F

我的代码:

public SendOrderMap()
{
    Table("Sendorder");
    Id(s => s.ID).GeneratedBy.Sequence("SEQ_SendOrder");
    Map(s => s.YBID);
    Map(s => s.TITLE);
    Map(s => s.MESSAGE).CustomSqlType("NCLOB").CustomType("StringClob");
}
当它依赖于FluentNHibernate 1.3+NHibernate4.0时,就可以了

但是现在我使用FluentNHibernate2.0.3+NHibernate4.1.1,这是错误的!错误提示:

ORA-01461:只能为插入到长列中绑定长值 提示


我能做什么?

我遇到了几乎完全相同的问题。 我的字段映射如下:

Map(Function(x) x.Remark, "REMARK").Length(4000)
当为这个超过1000个字符的备注字符串插入值时,我得到了与原始海报相同的错误:

"ORA-01461: can bind a LONG value only for insert into a LONG column" 
我很容易就解决了:

  • 将NHibernate更新为v4.1.1.4000
  • 将Fluent NHibernate更新为v2.0.3
  • 已将Oracle.ManagedDataAccess更新为v12.1.24160719

看起来Oracle已经修复了托管驱动程序中的已知错误

试图错误地使用
LONG
更新
CLOB
NCLOB
是Oracle托管驱动程序的一个已知错误,其解决方法如上面链接的问题答案中所述。如果您认为您的情况不同,请提供更多信息,例如哪些代码行触发了错误,使用了哪些Oracle方言和驱动程序。。。