Я пытаюсь получить некоторые данные из файла JSON и сохранить эти данные в другом формате в Oracle.В настоящее время у меня есть следующая таблица:
CREATE TABLE json_documents (
id RAW(16) NOT NULL,
data CLOB,
CONSTRAINT json_documents_pk PRIMARY KEY (id),
CONSTRAINT json_documents_json_chk CHECK (data IS JSON)
);
И я сделал следующую вставку:
INSERT INTO json_documents (id, data)
VALUES (SYS_GUID(),
'[{
"rid7":"9R1CODE",
"rid":[
]
},
{
"rid7":"ZB0CODE",
"rid":[
{
"rid10":"WB10123124",
"rid17":"WB10123124ZB0CODE"
}
]
},
{
"rid7":"ZB1CODE",
"rid":[
{
"rid10":"ZKH9875435",
"rid17":"ZKH9875435ZB1CODE"
}
]
}]');
Теперь, если я выполню следующее, выберите:
SELECT a.data.rid7
FROM JSON_DOCUMENTS a;
Iполучить следующий результат:
[9R1CODE,ZB0CODE,ZB1CODE]
, в то время как я хотел бы получить результаты в одном столбце, но в разных строках.Есть способ сделать это?Как я могу различить несколько «rid7» в одной строке в моей таблице json_documents
?
Также, как я могу получить доступ к различным «rid10», которые есть в моем файле JSON?
Я также попытался использовать json_value
следующим образом:
SELECT JSON_VALUE(a.data, '$.rid7')
FROM JSON_DOCUMENTS a;
, но запрос привел к нулевому значению.Почему?