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方言和驱动程序。。。