ORA-64203: 目标缓冲区太小, 无法容纳字符集转换之后的 CLOB 数据。

雨点打透心脏的1/2处 2022-05-14 14:28 2021阅读 1赞

报错原因:在网上查询了一下,应该是由于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);

发表评论

表情:
评论列表 (有 0 条评论,2021人围观)

还没有评论,来说两句吧...

相关阅读