Как добавить объект json из вложенного json в db-столбец в БД Oracle - PullRequest
0 голосов
/ 03 октября 2018

Мне нужно вставить JSON из вложенного файла JSON в столбец в Oracle.Например, в следующем json

{
"name":"John",
"age":30,
"cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
}
}

мне нужно сохранить весь json:

"cars": {
"car1":"Ford",
"car2":"BMW",
"car3":"Fiat"
}

в столбце db.Как я могу это сделать?Я использую Oracle DB.


Я пробовал следующий запрос, но он не работает.(Говорит, что clob не является допустимым типом данных)

select x.*
    from json_tab t,
             json_table (t.json_data, '$.[*]' 
         COLUMNS
            name  VARCHAR2(4000) PATH '$.name',
            cars clob PATH '$.cars[*]') x;

Я пробовал то же самое, используя тип данных varchar2, но он выбирает ноль.

1 Ответ

0 голосов
/ 08 октября 2018

Если вы используете oracle 12c, попробуйте поэкспериментировать с этим запросом, чтобы получить нужный вам результат.

select x.*, json_object(key 'cars' value x.cars format json) cars_json 
    from json_tab t, 
        json_table(t.json_data, '$'
                 COLUMNS
                   name  VARCHAR2(4000) PATH '$.name',
                   cars VARCHAR(4000) format json PATH '$.cars[*]') as x;
...