【问题标题】: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