listagg DB链接问题

Posted

技术标签:

【中文标题】listagg DB链接问题【英文标题】:listagg DB link issue 【发布时间】:2018-05-16 10:31:13 【问题描述】:

对于以下查询,我只得到错误:

ORA-00923:在 DBLINK 中未找到预期的 FROM 关键字。

select LISTAGG(SERVICE_ORDER, ', ')  WITHIN GROUP (ORDER BY SERVICE_ORDER) 
"service_order"
FROM TBL_DATA@TBL_REP

【问题讨论】:

在 11gR2 上对我来说很好用(复制/粘贴您的查询,更改列、表和数据库链接名称)。 嗨,谢谢,我看到了.. 它在 10g 上,我的数据库是 11g。谢谢。 啊哈。 LISTAGG 不适用于 10g,因为它在该版本中不存在。您可以使用 XMLAGG 或(未记录的)WM_CONCAT。 我会使用你建议的那些。非常感谢你的伙伴。 :) 不客气。 【参考方案1】:

也适用于 12c(12.1.0.2.0):

SELECT LISTAGG (SERVICE_ORDER, ', ') WITHIN GROUP (ORDER BY SERVICE_ORDER)
           "service_order"
  FROM (SELECT 'a' SERVICE_ORDER FROM DUAL
        UNION ALL
        SELECT 'b' SERVICE_ORDER FROM DUAL
        UNION ALL
        SELECT 'c' SERVICE_ORDER FROM DUAL)

【讨论】:

以上是关于listagg DB链接问题的主要内容,如果未能解决你的问题,请参考以下文章

涉及 LISTAGG 的 DB2 SQL

LISTAGG 失败,SQLCODE=-440

DB2-具有DISTINCT子句的LISTAGG()-不起作用?

H2 用户使用“WITHIN GROUP”定义的 ListAgg 函数

H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

如何调整LISTAGG以在选择查询中支持超过4000个字符?