Oracle 19c如何解析无外层键的JSON数组字段并展开查询
Oracle 19c 拆分无外层键的JSON数组为行数据
针对你这种直接存储对象数组(无外层键)的场景,可以使用JSON_TABLE函数,通过指定数组遍历路径$[*]来拆分每个对象,关联原表字段即可得到目标结果。
对应的查询SQL如下:
SELECT t.tck_id, j.id, j."desc" FROM your_table t, JSON_TABLE(t.sw_j, '$[*]' COLUMNS id NUMBER PATH '$.id', "desc" VARCHAR2(100) PATH '$.desc' ) j;
说明:
$[*]表示遍历sw_j中的所有数组元素,每个元素对应一行数据COLUMNS子句定义要提取的JSON字段,PATH指定字段在对象中的路径- 注意
desc是Oracle关键字,需要用双引号包裹避免语法错误
执行上述语句后,就能得到你期望的结果:
tck_id ; id ; desc 1001 ; 1 ; title1 1001 ; 2 ; title2
内容的提问来源于stack exchange,提问作者nickb84
相关产品推荐
相关产品推荐

