首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未找到具有兼容参数的名为"JSON_ARRAYAGG“类型的”函数“的授权例程

未找到具有兼容参数的名为"JSON_ARRAYAGG“类型的”函数“的授权例程
EN

Stack Overflow用户
提问于 2020-10-21 09:30:42
回答 1查看 579关注 0票数 0

在使用JSON_ARRAYAGG函数时,没有发现具有兼容参数的名为"JSON_ARRAYAGG“类型的”函数“的授权例程出现错误:

代码语言:javascript
复制
    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  

我在示例表上尝试了这个查询,但仍然得到了相同的错误:

代码语言:javascript
复制
    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  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-21 11:15:58

请理解您必须使用正确的文档来匹配Db2产品平台。对于Db2,有三个主要平台(Linux/Unix/Windows(LUW)、Z/OS和I系列(as/400)。此外,DB2 on-云中的特性(以及一个不同的知识中心)与常规的Db2-LUW略有不同。

您引用了DB2in-i的一个页面(as/400),它是一个不同的产品(具有不同的语法),而不是云上的DB2。因此,Db2 on-cloud没有该函数json_arrayagg (尽管当前版本的Db2 for I系列确实具有该功能)。

请使用此处的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%' (假设您有正确的访问权限)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64460658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档