如何访问json中的数组元素?

问题描述 投票:-1回答:1

我有以下数组作为json架构的一部分。

"CurrentAgentSnapshot": {
    "Configuration": {
        "Contacts": []
     }
}

如何使用oracle sql developer访问contacts元素?下面是我的代码片段,它在方括号位置有语法错误。我是否需要一个临时变量来保存contacts变量

DECLARE 
        callDuration VARCHAR2(10);
    BEGIN
        SELECT
            tbl.event_data.currentagentsnapshot.contacts
        FROM
            tbl_agent_event_json tbl;
    BEGIN
       callDuration := CURRENT_TIMESTAMP - tbl.event_data.currentagentsnapshot.contacts[0].StateStartTimestamp;
    END;
json oracle plsql
1个回答
0
投票

您可以使用json_array或json_arrayagg

示例:https://docs.oracle.com/cloud/latest/db122/ADJSN/generation.htm#ADJSN-GUID-B0FA4582-762D-4C32-8A0C-265142BD347B

SELECT json_object('id'         VALUE mgr.employee_id, 
                   'manager'    VALUE (mgr.first_name || ' '|| mgr.last_name),
                   'numReports' VALUE count(rpt.employee_id),
                   'reports'    VALUE json_arrayagg(rpt.employee_id
                                                    ORDER BY rpt.employee_id))
  FROM  employees mgr, employees rpt
  WHERE mgr.employee_id = rpt.manager_id
  GROUP BY mgr.employee_id, mgr.last_name, mgr.first_name
  HAVING count(rpt.employee_id) > 6;
© www.soinside.com 2019 - 2024. All rights reserved.