Witam,
Wyciągając dane z bazy postgresql dostałem kolumnę POLE_J która jest typu CLOB ale zawiera tylko dane JSON lub null.
Przykład danych z tej kolumny dla jednego ID = 1 wygląda następująco:
[
{"kod": "A113", "desc" : "opis modułu", "type": "string"},
{"kod": "A114", "desc" : "opis planu", "type": "string"},
{"kod": "A115",
"slo":
[{"wart": "praca wykonana", "ozn": "pw"},
{"wart": "praca przerwana", "ozn": "pp"},],
"desc" : "opis prac", "type": "string"},
{"kod": "A116", "desc" : "opis dzialania", "type": "string"}
]
Chcę napisać teraz zapytanie które pokaże mi dane:
ID || KOD || DESC || WART || OZN
1 || A113 || OPIS MODULU || NULL || NULL
1 || A114 || OPIS PLANU || NULL || NULL
1 || A115 || OPIS PRAC || PRACA WYKONANA || PW
1 || A115 || OPIS PRAC || PRACA PRZERWANA || PP
1 || A116 || OPIS DZIALANIA || NULL || NULL
Czy ktoś mógłby podpowiedzieć jak wykonać zapytanie żeby takie dane uzyskać - chodzi mi tylko o część z json?
Zacząłem coś w tym stylu:
select kod
from table_name
,
json_table(
POLE_J,'$'
columns(
kod varchar2(20) path '$.kod' ) ) e
Zostaje mi zwrócony tylko kod pierwszy: A113.
Czy tutaj należy wykonać jakąś pętle albo inną operację żeby wyciągnąć wszystkie kody dla całego json z tej komórki?