powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг JSON в Oracle 11
8 сообщений из 8, страница 1 из 1
Парсинг JSON в Oracle 11
    #39622576
noob saibot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, гуру


Общая задача - получить значение поля по значению другого же поля таблицы с небольшим JSON
Например - получить value=v3 зная, что id=3
Сам JSON:
Код: xml
1.
{"MahArray":[{"id":1,"value":"v1"},{"id":2,"value":"v2"},{"id":3,"value":"v3"},{"id":4,"value":"v4"}]}



1. В 12 версии очень улобно сделать JSON_TABLE (но версия 11):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select *
from (select '{"MahArray":[{"id":1,"value":"v1"},{"id":2,"value":"v2"},{"id":3,"value":"v3"},{"id":4,"value":"v4"}]}' details from dual) o, 
     json_table(o.details, '$.MahArray[*]' 
         columns (
              id integer path '$.id',
              value varchar path '$.value'
         )
     ) t
where t.id = 3;



2. Можно использовать SUBSTR/INSTR/LENGTH - но громоздко

3. REGEXP_SUBSTR - вот тут нужна помощь! Не получается выделить value без кавычек зная id

Может, есть другой хороший вариант...

Кто знает регулярки - помогите сделать паттерн!

С уважением, нуб
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622583
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob saibot,

Хранимка на JAVA и использование API for JSON Processing.
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622588
noob saibot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

Вариант, хороший
Но в данной ситуации - не пропустат деплой. Уж лучше substr тогда сделаю

Помогите с регуляркой plz!
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622598
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob saibotНо в данной ситуации - не пропустат деплой.У вас там неадекваты, принуждающие использовать заведомо неподходящие инструменты и велосипедостроение?
noob saibotПомогите с регуляркой plz!
Код: plaintext
regexp_substr(..., '{"id":2,"value":"([^"]*)"}', 1, 1, null, 1)
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622609
noob saibot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop
Код: plaintext
regexp_substr(..., '{"id":2,"value":"([^"]*)"}', 1, 1, null, 1)


Отлично, вот результат: {"id":2,"value":"v2"}

Как сделать, чтоб возвращалось только v2 (без кавычек, id и остального)?!
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622611
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob saibot,

Одной регуляркой не обойдешься. Нужно искать парные кавычки с учетом эскейпов.
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622612
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noob saibot,

Не в состоянии вставить выражение в запрос?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL> with t as
  2  (select '{"MahArray":[{"id":1,"value":"v1"},{"id":2,"value":"v2"},{"id":3,"value":"v3"},{"id":4,"value":"v4"}]}' x from dual)
  3  select regexp_substr(x, '{"id":2,"value":"([^"]*)"}', 1, 1, null, 1) value from t;

VA
--
v2
...
Рейтинг: 0 / 0
Парсинг JSON в Oracle 11
    #39622613
noob saibot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

Сорян, я не заметил параметры - работает!
Огромное спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Парсинг JSON в Oracle 11
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]