为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:windows10
【CPU】:
【问题描述】*:
使用listagg2,报-6108: 字符串截断。已将dm.ini文件里的CLOB_LIKE_MAX_LEN修改为1024000000,仍然报错。
报错语句如下:
select concat(‘[’,listagg2( jsonb_build_object( ‘id’,id, ‘purpose’,json_value( jdata, ‘$.purpose’ ) )),‘]’)
from sysdba.cases
where type=‘单据信息’ limit 20;
如果修改语句,不查询purpose字段,只查询id,就能正常查出来:
select concat(‘[’,listagg2( jsonb_build_object( ‘id’,id )),‘]’)
from sysdba.cases
where type=‘单据信息’ limit 20;
问题具体出在哪,如何解决?
问题不是出在listagg2,而是出在concat吧
listagg2分组出来的是clob类型,这个clob的长度是可能超过32K的,如果超过了32K,然后外面再包一层concat转成字符串就会报错字符串截断了。
varchar类型最多只能展示32K。
purpose是clob类型吗?
把表结构贴出来吧