【问题标题】:JSON array parsing into rowsJSON数组解析成行
【发布时间】:2021-11-14 12:59:49
【问题描述】:

我有如下 JSON,

{
  "value": [
    {
      "id": "123",
      "createdDateTime": "2021-09-17T14:15:18Z"
    },
    {
      "id": "124",
      "createdDateTime": "2022-09-17T14:15:18Z"
    }
  ]
}

我正在尝试将输出作为 2 个单独的记录并将其存储在 clob 列(值)中,我们将不胜感激。

values
{"id": "123",
"createdDateTime": "2021-09-17T14:15:18Z"
}
{"id": "123",
"createdDateTime": "2021-09-17T14:15:18Z"
}

【问题讨论】:

    标签: sql json oracle oracle12c


    【解决方案1】:

    你可以使用JSON_TABLE:

    SELECT j.value
    FROM   table_name t
           CROSS APPLY JSON_TABLE(
             t.json_value,
             '$.value[*]'
             COLUMNS
               value VARCHAR2(4000) FORMAT JSON PATH '$'
           ) j
    

    其中,对于样本数据:

    CREATE TABLE table_name (json_value CLOB CHECK (json_value IS JSON));
    
    INSERT INTO table_name (json_value)
    VALUES ('{"value":[{
                "id": "123",
                "createdDateTime": "2021-09-17T14:15:18Z"
                
            },
            {
                "id": "124",
                "createdDateTime": "2022-09-17T14:15:18Z"
                
            }]}')
    

    输出:

    VALUE
    {"id":"123","createdDateTime":"2021-09-17T14:15:18Z"}
    {"id":"124","createdDateTime":"2022-09-17T14:15:18Z"}

    db小提琴here

    【讨论】:

    • 谢谢,它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2010-10-25
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多