gpt4 book ai didi

sql - LISTAGG函数: "result of string concatenation is too long"

转载 作者:行者123 更新时间:2023-12-02 07:22:34 24 4
gpt4 key购买 nike

我正在使用 Oracle SQL Developer 版本 3.0.04。我尝试使用函数 LISTAGG 将数据分组在一起..

    CREATE TABLE FINAL_LOG AS
SELECT SESSION_DT, C_IP, CS_USER_AGENT,
listagg(WEB_LINK, ' ')
WITHIN GROUP(ORDER BY C_IP, CS_USER_AGENT) "WEB_LINKS"
FROM webviews
GROUP BY C_IP, CS_USER_AGENT, SESSION_DT
ORDER BY SESSION_DT

但是,我不断收到错误,

SQL Error: ORA-01489: result of string concatenation is too long

我非常确定输出可能会超过 4000,因为这里提到的 WEB_LINK 是 url 茎和 url 查询的串联值。

有什么办法可以绕过它或者有其他选择吗?

最佳答案

您可以使用 the XMLAGG function 完成类似的功能:

SELECT RTRIM(XMLAGG(XMLELEMENT(E,colname,',').EXTRACT('//text()') ORDER BY colname).GetClobVal(),',') AS LIST
FROM tablename;

这将返回一个 clob 值,因此行数没有限制。

关于sql - LISTAGG函数: "result of string concatenation is too long",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com