Вы можете создать свою таблицу как:
create table json_tab (
id NUMBER(8,0) CONSTRAINT json_tab__id__pk PRIMARY KEY,
d_data CLOB CONSTRAINT json_tab__d_data__json CHECK (d_data IS JSON)
);
Тогда ваши JSON данные должны использовать "a":1
вместо "a"=1
в парах ключ-значение объекта:
insert into json_tab ( id, d_data )
SELECT 1,'[{"a":0,"b":1},{"a":1,"b":2},{"a":2,"b":3}]' FROM DUAL UNION ALL
SELECT 2,'[{"a":0,"b":1},{"a":1,"b":2},{"a":2,"b":3}]' FROM DUAL;
Тогда вы можете использовать JSON_TABLE
:
SELECT id,a,b
FROM json_tab t
CROSS JOIN
JSON_TABLE(
t.d_data,
'$[*]'
COLUMNS
a NUMBER(5,0) PATH '$.a',
b NUMBER(5,0) PATH '$.b'
)
Какие выходы:
ID | A | B
-: | -: | -:
1 | 0 | 1
1 | 1 | 2
1 | 2 | 3
2 | 0 | 1
2 | 1 | 2
2 | 2 | 3
дБ <> Fiddle здесь