gpt4 book ai didi

db2 - 找不到具有兼容参数的,名为 “JSON_ARRAYAGG”的名为 “FUNCTION”的授权例程

转载 作者:行者123 更新时间:2023-12-03 08:24:34 28 4
gpt4 key购买 nike

找不到具有兼容参数的名为“FUNCTION”类型的名为“JSON_ARRAYAGG”的授权例程
在DB2中使用JSON_ARRAYAGG函数时出错:

    QUERY:
SELECT JSON_OBJECT('ACCT_ID' VALUE acct_id,
'use_case list' VALUE
JSON_ARRAYAGG(
JSON_OBJECT('use_case' VALUE use_case,
'stage' VALUE stage)))
FROM NULLID.ProductRecommendations
GROUP BY acct_id;

Error:
FAILED [SELECT - 0 rows, 0.009 secs] 1) [Code: -440, SQL State: 42884] No authorized routine named "JSON_ARRAYAGG" of type "FUNCTION" having compatible arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=4.26.14
2) [Code: -727, SQL State: 56098] An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-440", SQLSTATE "42884" and message tokens "JSON_ARRAYAGG|FUNCTION".. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.26.14
我已经在示例表上尝试了此查询,仍然收到相同的错误:
    Person Table:
create table NULLID.person
(
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
name varchar(50),
PRIMARY KEY (id)
);

Contacts Table:
create table NULLID.contacts
(
id INT,
person_id int,
key varchar(50),
value varchar(100),
foreign key (person_id) references person (id)
);

Insert Queries:
insert into NULLID.person values (1, 'A');
insert into NULLID.person values (2, 'B');
insert into NULLID.contacts values (1, 1, 'EMAIL', 'a@b.com');
insert into NULLID.contacts values (2, 1, 'PHONE', '123');
insert into NULLID.contacts values (3, 2, 'EMAIL', 'b@b.com');
insert into NULLID.contacts values (4, 2, 'PHONE', '456');

Query:
SELECT
person_id,
JSON_ARRAYAGG(key)
FROM
contacts
GROUP BY person_id


Error:
16:17:44 FAILED [SELECT - 0 rows, 0.009 secs] 1) [Code: -440, SQL State: 42884] No authorized routine named "JSON_ARRAYAGG" of type "FUNCTION" having compatible arguments was found.. SQLCODE=-440, SQLSTATE=42884, DRIVER=4.26.14
2) [Code: -727, SQL State: 56098] An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-440", SQLSTATE "42884" and message tokens "JSON_ARRAYAGG|FUNCTION".. SQLCODE=-727, SQLSTATE=56098, DRIVER=4.26.14

最佳答案

请理解您必须使用正确的文档来匹配Db2产品平台。对于Db2,有三个主要平台(Linux/Unix/Windows(LUW),Z/OS和i系列(as/400)),此外,Db2-on-cloud与(与知识中心不同)功能略有不同。常规的本地Db2-LUW。
您引用了Db2-for-i(as/400)的页面,该页面是与云上Db2-on不同的不同产品(具有不同的SQL语法)。因此,Db2-on-cloud没有该功能json_arrayagg(尽管在当前版本中,i系列的Db2确实具有该功能)。
请在此处使用正确的Db2-on-cloud知识中心
https://www.ibm.com/support/knowledgecenter/SSFMBX/com.ibm.swg.im.dashdb.kc.doc/welcome.html
对于云上的Db2,语法是使用功能JSON_ARRAY和相关功能。您可以使用此查询来查看可用的JSON函数:select routinename from syscat.routines where routinename like 'JSON%'(假设您具有正确的访问权限)。

关于db2 - 找不到具有兼容参数的,名为 “JSON_ARRAYAGG”的名为 “FUNCTION”的授权例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64460658/

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