You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中使用LISTAGG报错‘Right Parameter’问题求助

解决Oracle LISTAGG函数的"Right Parameter"错误

你的SQL报错是因为Oracle的LISTAGG函数必须包含WITHIN GROUP (ORDER BY ...)子句,这是语法要求的必填部分,缺少它就会触发参数错误。

修正后的SQL如下:

SELECT listagg(ODA_CdiDispositivoAcesso, ';') WITHIN GROUP (ORDER BY ODA_CdiDispositivoAcesso)
FROM DispositivosAcessosOcors
INNER JOIN DispositivosAcessos ON (ODA_CdiDispositivoAcesso = DIS_CdiDispositivoAcesso)
WHERE ODA_CdiTpOcorrenciaDispositivo IN (500)
  AND DIS_OplDesativado = 0
  AND ODA_DtdInicio <= sysdate
  AND (ODA_DtdFim IS NULL OR ODA_dtdFim >= sysdate)

补充说明:

  • WITHIN GROUP (ORDER BY 列名)用于指定合并结果的排序规则,你可以根据需求替换成其他字段(比如日期、主键等);
  • 如果需要去重合并,Oracle 12cR2及以上版本支持在LISTAGG中加入DISTINCT,写法为listagg(DISTINCT ODA_CdiDispositivoAcesso, ';') WITHIN GROUP (...)。

内容的提问来源于stack exchange,提问作者Bruno Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:25:36