问题背景:
需求中需要存储一个图片的Base64编码,采用CLOB存储,数据库和Mapper文件增加内容如下:
<result property="uploadImageBase64" column="UPLOAD_IMAGE_BASE64" jdbcType="CLOB" javaType="java.lang.String"/>
查询列表的时候发现报错:
ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
尝试如下:
1、首先尝试使用dbms_lob.substr截取CLOB字段的值,发现没有办法截取到所有的数据
2、然后尝试使用TO_CHAR保证CLOB字段,发现问题还是存在
3、最后将sql语句中的union改为union all,解决了问题
错误产生的原因:
clob 字段不支持分类,union 关键字因为会去重,所以会对字段进行group by。
真坑爹。