Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Что я не так делаю - regexp_substr?  [new]
efendi
Member

Откуда:
Сообщений: 124
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0
Почему возвращается второе значение eventTime?

select regexp_substr('{ "eventTime" : "20190311112233", "rtInfo" : {"balance" : "123.01", "eventTime" : "20190311122355" } }',
                     '.*"eventTime"[[:space:]]*:[[:space:]]*"([^"]*).*',
                     1,
                     1,
                     'n',
                     1) as event_time
  from dual;


EVENT_TIME
--------------
20190311122355


Подозреваю, что в шаблоне чего-то не хватает или может лишнее что-то указал.
Спасибо.
11 мар 19, 13:27    [21829106]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
-2-
Member

Откуда:
Сообщений: 14420
efendi,

json_table/json_value
11 мар 19, 13:35    [21829120]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
efendi
Member

Откуда:
Сообщений: 124
-2-
efendi,

json_table/json_value


Про это я в курсе, только тонну кода надо переписать, ради маленькой добавки. Пока на это добро не дают.
11 мар 19, 13:46    [21829134]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
ma1tus
Member

Откуда:
Сообщений: 658
жадность
'.*"eventTime"[[:space:]]*:[[:space:]]*"([^"]*).*'
*?
11 мар 19, 13:59    [21829169]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
efendi
Member

Откуда:
Сообщений: 124
ma1tus
жадность
'.*"eventTime"[[:space:]]*:[[:space:]]*"([^"]*).*'
*?


Убрал - ничего не изменилось
11 мар 19, 14:11    [21829191]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
ma1tus
Member

Откуда:
Сообщений: 658
efendi
Убрал
Что именно? Астериск - жадный квантификатор; если вам нужно пропустить минимум символов до "eventTime", то используйте ленивый: *? (ЗвёздочкаВопрос)
11 мар 19, 14:27    [21829203]     Ответить | Цитировать Сообщить модератору
 Re: Что я не так делаю - regexp_substr?  [new]
efendi
Member

Откуда:
Сообщений: 124
ma1tus,

Спасибо, получилось. Не так понял ваш комментарий
11 мар 19, 14:31    [21829208]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить