【YashanDB 知识库】listagg 拼接结果发生溢
本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7849011.html?templateId=1718516
【问题分类】功能使用
【关键字】listagg,YAS-02511
【问题描述】使用 listagg 进行业务查询提示 YAS-02511 result of string concatenation value exceeds maximum length of 8000 characters
【问题原因分析】listagg 拼接结果发生溢出
【解决/规避方法】当拼接的结果发生溢出时候(即拼接的 expr+分隔符>8000 时)进行特殊处理:
on overflow error:默认选项,发生溢出时直接报错。
on overflow truncate(text):text 是指定的终止标志(即终止符),在发生溢出后需要预留位置用来放置终止标志,默认终止标志为'...'占 3 个字节。
with count:发生溢出时且使用 truncate 时,默认输出 count。在发生溢出后需要预留 26 个字节(给 count 预留 24 个字符,括号预留 2 个字符)。将已经拼接的行数往回回滚到可以放置需要给"(count)"和终止标志预留的字节数,将最终溢出的行数赋值给 count。使用方法例如 on overflow truncate '*' with count。
without count:在截断后面不显示截断的行数,发生溢出时需要为终止标志预留位置,不需要为"(count)"预留位置。例如 on overflow truncate '*' without count。
【影响范围】23.2.3.100
【修复版本】-
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/2f3e3857b59dc248542256d0d】。文章转载请联系作者。
评论