Fluently NHibernate 插入CLOB字段

网友投稿 571 2022-09-29

Fluently NHibernate 插入CLOB字段

Fluently NHibernate 插入CLOB字段

ORA-01461: can bind a LONG value only for insert into a

插入oracle某表时报的错。

查来查去,是插入的某个字段值超长。怎么会超长呢?一个CLOB类型的字段,号称有4G容量的。

表设计:

我用的是Fluently NHibernate,for -。实体类及映射如下:

public class CatchResultContent { public virtual int CatchResultContentId { get; set; } public virtual int CatchResultId { get; set; } public virtual string Content { get; set; } } public CatchResultContentMap() { Table("CatchResultContent"); Id(s => s.CatchResultContentId).GeneratedBy.Sequence("SEQ_CatchResultContent"); Map(s => s.CatchResultId); Map(s => s.Content); }

真正到数据库执行的是如下语句:

INSERT INTO CatchResultContent (CatchResultId, Content, CatchResultContentId) VALUES

可能是这条SQL语句中,Content作为字符串输入,整条SQL超过4000,所以超长了?不清楚。

后来是酱紫搞定的。关键在映射这里:

public CatchResultContentMap() {。。。 Map(s => s.Content).CustomSqlType("Clob").CustomType("StringClob"); }

有老外给出的资料说是这样:

Map(s => s.Content).CustomSqlType("Clob");

其实还不够的。

======================================= 以上答案,似乎只能在 FluentNHibernate 1.3 + NHibernate4.0 里受支持,换成FluentNHibernate2.0或以上,就无效了,本人还不知道如何解决。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:64位windows上访问64位oracle 12c
下一篇:网页中打开exe
相关文章

 发表评论

暂时没有评论,来抢沙发吧~