mybatis在读取oracle的clob类型字段值时,长度未超过限制的话,使用to_char(clob字段)进

ORA-00932,数据类型不一致:应为-,却获得CLOB

行转换读取是没啥问题的,但是一旦存储的字段长度超出限制,就会报错,

Oracle Error : ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 3000, maximum: 4000)

有几个解决方式:

1.截取,采用substring,只截取字段前4000字节,这样不会再报错,但是明显丢弃了后面的数据

2.在mybatis的resultMap 上指定类型

 <resultMap column="introduce"  property="introduce"  javaType="java.lang.String" jdbcType="CLOB"></resultMap>

再一个就是一定不要在select语句中添加distinct关键字,这样会出现如下异常

ORA-00932,数据类型不一致:应为-,却获得CLOB

可以先写个子查询,然后再查询clob相关字段!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐