IMO, этот запрос должен возвращать A=1,B=2,
SELECT regexp_substr('A=1,B=2,C=3,', '.*B=.*?,') as A_and_B FROM dual
Но вместо этого возвращает целую строку A=1,B=2,C=3,
. Зачем?
UPD: Oracle 10.2+ требуется для использования метасимволов в стиле Perl в регулярных выражениях.
UPD2:
Более ясная форма моего вопроса (чтобы избежать вопросов о версии Oracle и доступности расширения регулярного выражения в стиле Perl):
Почему в той же системе ненасытный квантификатор иногда работает так, как ожидалось, а иногда нет?
Это работает правильно:
regexp_substr('A=1,B=2,C=3,', 'B=.*?,')
Это не работает:
regexp_substr('A=1,B=2,C=3,', '.*B=.*?,')
UPD3:
Да, это, кажется, ошибка.
Может ли кто-нибудь обеспечить реакцию поддержки Oracle по этой проблеме?
Известна ли ошибка?
Имеет ли он идентификатор?