在oracle中使用varchar2类型存储字符串时,发现存储的最大长度就是4000字符,再长就会报错。
使用clob类型,可以存储4g内容,而且mybatis可以自动解析clob类型,只需在写insert和update语句是,将
clob字段的数据类型设为:jdbcType=CLOB。至于javabean中,clob字段可以用String类型进行接收。
但是clob字段是不能用在常规的where条件中,例如=号,like等,如果需要进行模糊查询,可以使用下面语句
select * from t where dbms_lob.instr(t.clob字段名,模糊查询的内容,1,1) > 0。
<update id="updateByPrimaryKey" parameterType="cn.wlw.mgt.entity.WmsInPool">
update WMS_IN_POOL
set BIG_DATA = #{bigDdata,jdbcType=CLOB},
UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP}
where POOL_PK_NO = #{poolPkNo,jdbcType=DECIMAL}
</update>
使用连接符(||)向oracle中类型为CLOB的列追加内容时,传入长字符串会报错,目前没有找到好的解决方法,如果使用追加功能可以将传入的字符串长度改小,1000个字符可以拼接。