Oracle JSON-запрос вложенного массива - PullRequest
1 голос
/ 27 мая 2019

Я хотел бы запросить этот пример json и выбрать questions.title и questions.answers []. Reference []. Id (строка, объединенная с "," is штраф).

До сих пор я получаю следующее, используя json_table, без успеха с ссылочными идентификаторами:

select key_v, title, refs
from ASSESSMENT a,
  json_table (ASSESSMENT , '$'
  columns (key_v FOR ORDINALITY,
    nested path '$."questions".*'
      columns (
          title path '$."title"',
          refs path '$.answers[*].references."eocnurse:interventions"[*].id',
      )));

Желаемый результат на примере

"Cambiamento dello stato cognitivo" - "247, 77253"

"Stato della circolazione" - "81, 24853608585"

"Sonno e riposo" - "24853608585"

Версия Oracle: Oracle Database 12c Enterprise Edition, выпуск 12.1.0.2.0 - 64-разрядная версия

UDPATE

Мне удалось изменить структуру данных json , чтобы она соответствовала JSONpath .

С обновленной структурой json это решение моей проблемы:

select JT.*
from ASSESSMENT a,
  json_table (ASSESSMENT , '$.questions[*]'
  columns (
    "Title" PATH '$.title',
    "Refs" VARCHAR2(500 CHAR) FORMAT JSON WITH WRAPPER PATH '$.answers[*].references."eocnurse:interventions"[*].id'
  ))
  "JT";
...