参考oracle 使用listagg函数报 ORA-01489: result of string concatenation is too long错误处理_whandgdh的博客-优快云博客
把原先的LISTAGG(id, ',') WITHIN GROUP(order by id) id修改成:
(xmlagg(xmlparse(content id || ',' wellformed) ORDER BY id).getclobval()).ldtext id
从而jdbcType就变成了clob类型
查出结果resultType为HashMap时,value可这么转换:
value = value == null ? null : ((java.sql.Clob)value).getSubString(1L, (int)((java.sql.Clob)value).length());
如果是DTO,则用这个类型转换器:org.apache.ibatis.type.ClobTypeHandler
博客介绍了在Oracle中使用ListAgg函数遇到ORA-01489错误时的解决办法,通过将函数改为xmlagg并结合xmlparse进行字符串拼接,将结果类型转换为Clob。同时提供了在结果为HashMap时,如何转换Clob类型的value,以及在DTO中使用ClobTypeHandler进行类型转换。
6万+

被折叠的 条评论
为什么被折叠?



