oracle插入CLOB类型超过4000个字符报ORA-01704:string literal too long解决方法

不建议将超长的字段保存数据库,对于必须要求保存在数据的场景,分享一个解决方法(基于Mybatis持久层开发);
解决方法:通过声明变量的方式将数据赋予CLOB变量,通过引用变量进行插入。
Mybatis的XML写法如下:
DECLARE
   <if test="initData != null and initData != ''">
       INIT_DATA_CLOB_DATA CLOB := #{initData, jdbcType = CLOB};
   </if>
   <if test="finalData != null and finalData != ''">
       FINAL_DATA_CLOB_DATA CLOB := #{finalData, jdbcType = CLOB};
   </if>
   <if test="formContent != null and formContent != ''">
       FORM_CONTENT_DATA CLOB := #{formContent, jdbcType = CLOB};
   </if>
BEGIN
UPDATE TTRANSFER_MOBILE_LOG
   <set>
       <if test="initData != null and initData != ''">
           INIT_DATA_CLOB = INIT_DATA_CLOB_DATA,
       </if>
       <if test="finalData != null and finalData != ''">
           FINAL_DATA_CLOB = FINAL_DATA_CLOB_DATA,
       </if>
       <if test="formContent != null and formContent != ''">
           FORM_CONTENT = FORM_CONTENT_DATA,
       </if>
   </set>
WHERE LOG_ID = #{id};
END;
这里仅提供修改的示例,插入只需要将修改语句改为插入语句即可;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值