ORA-64203: 目标缓冲区太小, 无法容纳字符集转换之后的 CLOB 数据。
报错原因:在网上查询了一下,应该是由于content字段是clob字段,字符长度超过了char类型的缓冲区最大限制,所以才报错的。
解决方法:通过dbms_lob.substr 函数取出子串,然后通过 || 拼接起来,比如:
select DBMS_LOB.SUBSTR(content,4000,1) ||
DBMS_LOB.SUBSTR(content,4000,4001) ||
DBMS_LOB.SUBSTR(content,4000,8001) ||
DBMS_LOB.SUBSTR(content,4000,12001)
from xxx;
第二种使用 xmlagg拼接
xmlagg(xmlparse(content 内容 || ‘,’ wellformed) order by 字段).getclobval();
如果对字符长度有限制则可以截取
substr(xmlagg(xmlparse(content 内容 || ‘,’ wellformed) order by 字段).getclobval(), 0, 1024);
还没有评论,来说两句吧...