本文内容来自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
【修复版本】-
标签:count,YashanDB,知识库,拼接,预留,listagg,overflow,溢出 From: https://www.cnblogs.com/YashanDB/p/18644041