LISTAGG 失败,SQLCODE=-440
Posted
技术标签:
【中文标题】LISTAGG 失败,SQLCODE=-440【英文标题】:LISTAGG fails with SQLCODE=-440 【发布时间】:2014-03-04 21:43:26 【问题描述】:当我尝试使用LISTAGG
时出现此错误
未找到具有兼容参数的类型为“FUNCTION”的名为“LISTAGG”的授权例程。SQLCODE=-440, SQLSTATE=42884, DRIVER=3.58.81
我正在使用 DB2 9.7.0.8。
这里是查询:
SELECT LISTAGG(columna,',') FROM table GROUP BY columb
列是varchar
columnb 是 int
和 pk
【问题讨论】:
显然,您为函数提供了不正确的参数。由于您选择不显示实际的 SQL 语句,因此您必须自己弄清楚细节。 @mustaccio SELECT LISTAGG(columna,',') FROM table GROUP BY columb columna is a varchar columnb is int and the pk 你为什么不把这个放在你的问题中,格式正确? 所示的虚假陈述看起来是正确的,因此可能性很小: 1) 您的 DB2 服务器版本不是 9.7 修订包 8,或者修订包安装不正确。 2)columna
数据类型不是 varchar
并且不能转换为 varchar
3) 您的 实际 查询包含错误。
对了,如果你说columnb
是主键,那么按它分组有什么意义呢?结果将等同于select columna from table
。
【参考方案1】:
columnb不是唯一的,是PK之一。此表有复数pk。
解决方案是here
由于这里没有发布答案,并且正确答案已作为评论发布,因此请从@Ravi 的评论中发布此答案
【讨论】:
以上是关于LISTAGG 失败,SQLCODE=-440的主要内容,如果未能解决你的问题,请参考以下文章
原因:com.ibm.db2.jcc.am.SqlSyntaxErrorException:DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884