【问题标题】:PLSQL turn clob containing json into tablePLSQL将包含json的clob转成表
【发布时间】:2021-10-20 19:28:54
【问题描述】:
有没有办法将包含 JSON 对象的 clob 变成表
例如,我有一个包含 [{"a":"1","b":"1"; “a”:“2”,“b”:“2”; "a":"2","b":"2"}]
我想把它变成一个表,以便将它与我数据库中的其他表连接起来。
有办法吗?
谢谢!
【问题讨论】:
-
dbfiddle.uk/… 有一个如何处理类似数据的简单示例,但如果没有更多关于您实际需要什么的详细信息,很难以更具体的方式回答您的数据。
-
-
标签:
oracle
plsql
oracle-apex
plsqldeveloper
【解决方案1】:
您的 JSON 格式肯定不是很好。但是,一旦清理完毕,您就可以使用 JSON_TABLE 来实现您的目标:
WITH test_data (json) AS
(
SELECT '{"rows":[{"a":"1","b":"1"},{"a":"2", "b":"2"},{"a":"2","b":"2"}]}' FROM DUAL
)
SELECT jt.*
FROM test_data td,
JSON_TABLE(td.json,
'$.rows[*]'
COLUMNS (row_number FOR ORDINALITY,
a INTEGER PATH '$.a',
b INTEGER PATH '$.b')) jt
产生以下结果:
| row_number |
a |
b |
| 1 |
1 |
1 |
| 2 |
2 |
2 |
| 3 |
2 |
2 |
这是一个 DBFiddle,展示了它是如何工作的 (Link)