добавлено: 05 окт 17
понравилось:0
просмотров: 8853
комментов: 0
теги:
понравилось:0
просмотров: 8853
комментов: 0
теги:
Автор: Myp3_u_K
SQL. 5 дней которые изменят твою жизнь.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA
Чалышев Максим Михайлович
немного про JSON и ORACLE 12
в oracle 12 есть специальное ограничение, чтобы добавлять в поле только данные json формата, и чтобы исключить ошибки со структурой JSON
добавим его к нашей таблице
заполним таблицу тестовыми данными
в качестве json используем следующую информацию об объекте
попробуем извлечь данные из наших таблиц
1 book
2 new book
1 Robert Stivenson
еще один способ
1 book
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA
Чалышев Максим Михайлович
немного про JSON и ORACLE 12
create table info_user_v ( id number primary key -- иднтификатор уникальный , name varchar2(50) -- наименование , json_data varchar2(4000) -- данные JSON );
в oracle 12 есть специальное ограничение, чтобы добавлять в поле только данные json формата, и чтобы исключить ошибки со структурой JSON
добавим его к нашей таблице
alter table info_user_v add constraint c_1_json_data check(json_data is json);
заполним таблицу тестовыми данными
в качестве json используем следующую информацию об объекте
{ "title":"book", "name":"Island", "autor":{ "firstname":"Robert", "firstname":"Stivenson" } }
insert into info_user_v(id, name, json_data) values (1, 'item1', '{ "title":"book", "name":"Island", "autor":{ "firstname":"Robert", "lastname":"Stivenson" } }');
insert into info_user_v (id, name, json_data) values (2, 'item2', '{ "title":"new book", "name":"Game of trones", "autor":{ "firstname":"Robert", "lastname":"BArateon" } }'); commit;
попробуем извлечь данные из наших таблиц
select id, json_value(json_data,'$.title') from info_user_v
1 book
2 new book
select id, json_value(json_data,'$.autor.firstname') , json_value(json_data,'$.autor.lastname') from info_user_v where json_value(json_data,'$.title') like 'bo%'
1 Robert Stivenson
еще один способ
select id,tt.* from info_user_v , JSON_TABLE(json_data,'$.autor' COLUMNS(firstname varchar2(50 char) path '$.firstname')) tt; select id,tt.* from info_user_v , JSON_TABLE(json_data,'$' COLUMNS(title varchar2(50 char) path '$.title')) tt where tt.title = 'book'
1 book
Комментарии