12.2 съдържа набор от PL/SQL обекти, които могат да се използват за изграждане на DOM подобна структура на JSON документ. След това можете да извлечете списъци с ключове и т.н., като използвате методи на обектите. Погледнете в документа 12.2 за JSON_OBJECT_T, JSON_ARRAY_T и т.н., които могат да се използват по този начин.
SQL> create or replace type NV_PAIR_T as object (
2 NAME VARCHAR2(32),
3 VALUE VARCHAR2(32)
4 )
5 /
Type created.
SQL> create or replace type NV_PAIR_TABLE as TABLE of NV_PAIR_T
2 /
Type created.
SQL> create or replace function GET_KEY_VALUES(P_JSON_DOC VARCHAR2)
2 return NV_PAIR_TABLE PIPELINED
3 as
4 JO JSON_OBJECT_T := JSON_OBJECT_T(P_JSON_DOC);
5 JO_KEYS JSON_KEY_LIST := JO.get_keys();
6 begin
7
8 for i in 1..JO_KEYS.count loop
9 pipe row (NV_PAIR_T(JO_KEYS(i),JO.get_string(JO_KEYS(i))));
10 end loop;
11 end;
12 /
Function created.
SQL> select *
2 from TABLE(GET_KEY_VALUES('{"A":"AA", "B":"BB", "C":"CC"}'))
3 /
A AA
B BB
C CC
SQL>
Това помага ли