【发布时间】:2015-04-02 19:09:27
【问题描述】:
我有一个查询,它使用listagg 函数将所有行作为逗号分隔的字符串最终发送到一个大文本框。我收到以下异常:
ORA-01489: result of string concatenation is too long
我知道问题在于,为聚合数据而运行的查询返回了太多行,以至于 listagg 正在执行的字符串连接违反了 4000 个字符的限制。但是,对于我的用例,截断到前 4000 个字符是完全可以接受的。
如何从here 修改此示例查询以将“值”列限制为最多 4000 个字符?
SELECT LISTAGG(product_name, ', ') WITHIN
GROUP(
ORDER BY product_name DESC) "Product_Listing"
FROM products
您不能将 substr 包裹在调用 listagg' becauselistaggthrows the exception beforesubstr` 周围。
我在 SO 上看到了很多关于如何绕过 4000 个字符限制但不限制结果值的问题。
【问题讨论】:
标签: sql oracle oracle11g string-concatenation varchar2