2013-04-18 3 views
14

Почему в некоторых случаях количество якорей начала строки не равно числу привязок конца строки?

regexp_count(chr(10)||'A'||chr(10)||'B', '^') = 2 
regexp_count(chr(10)||'A'||chr(10)||'B', '$') = 1 

UPD:
В многострочно режиме перекос имеет противоположное направление:

regexp_count(chr(10)||'A'||chr(10)||'B', '^', 1, 'mn') = 1 
regexp_count(chr(10)||'A'||chr(10)||'B', '$', 1, 'mn') = 3 

fiddle

+2

выглядит как ошибка. 'chr (10)', за которым следует что-либо совпадение 2 '^', что является бессмыслицей для однострочного режима – zerkms

+0

wow. Это похоже на то, что, кроме этого, ошибка оракула даже не считала chr (10) как перевод строки в его regexp-движке (попробуйте добавить '' C '|| 'до первого chr (10), результат будет равен 1 для обоих^и $) – Sebas

+2

Еще интереснее: http://www.sqlfiddle.com/#!4/d41d8/9942 – ThinkJet

ответ

12

После исследования Oracle Support сделал вывод, что этот вопрос является ошибкой.

Ошибка 16707134: REGEXP_COUNT PATTERN '^' И НОВАЯ ЛИНИЯ непредвиденное поведение

+0

Не могли бы вы связаться с Oracle Support для решения аналогичной проблемы в моей другой [вопрос] (http://stackoverflow.com/q/16702672/1847592)? –

+0

@EgorSkriptunoff Извините, но теперь у меня нет доступа к Metalink. Но вы можете задать этот вопрос на форуме сообщества Oracle https://forums.oracle.com/forums/category.jspa?categoryID=18 Этот форум, как представляется, контролируется специалистами службы поддержки Oracle и выглядит как полезное место для получения автоответчика. – ThinkJet

+0

@ThinkJet вы проверили, что chr (10) против V $ NLS_PARAMETERS? –

Смежные вопросы