使用ibatis在Oracle中clob存储超过4000长度的数据时报错ORA-01461

原创
2023/03/23 17:18
阅读数 40

Oracle存储的字段长度是有限制的,常见的varchar2的保存长度最大为4000,对一些业务字段值可能超过4000的情况,可以使用clob类型进行存储,但是如果直接将大字符串保存到clob的列中,会提示错误:“ORA-01461: 只有在将值插入数据类型为 LONG 的列时,才可以绑定一个 LONG 值”。

1.Java下插入:变量参数必须用#,使用javaType=java.lang.String,jdbcType=CLOB

<!-- 插入详情信息 -->  
<insert id="saveInvoicInfoData" parameterClass="InvoicInfoEntity">
  insert into dm_invoice_info(typeid,time,textstr,name,userid)
  values(#typeId#,sysdate,#textStr,javaType=java.lang.String,jdbcType=CLOB#,#name#,#userId#)
</insert>  

2.C#下插入:变量参数必须用#,使用dbType=clob

<!-- 插入详情信息 -->  
<insert id="saveInvoicInfoData" parameterClass="InvoicInfoEntity">
  insert into dm_invoice_info(typeid,time,textstr,name,userid)
  values(#typeId#,sysdate,#textStr,dbType=CLOB#,#name#,#userId#)
</insert>  

通过在ibatis里这样的配置,数据库插入时会自动转成clob

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部