2013-04-18 24 views
14

Tại sao trong một số trường hợp, số neo bắt đầu bằng chuỗi không bằng số lượng neo cuối chuỗi?

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

UPD:
Trong nhiều dòng chế độ không thăng bằng có hướng ngược lại:

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

fiddle

+2

Trông giống như một lỗi. 'chr (10)' theo sau bởi bất cứ điều gì khớp với 2 '^' là vô nghĩa đối với một chế độ một dòng – zerkms

+0

wow. Nó giống như bên cạnh oracle lỗi này thậm chí không đếm chr (10) như là một linefeed trong công cụ regexp của nó (thử thêm ''C' ||' trước chr đầu tiên (10) kết quả sẽ là 1 cho cả^và $) – Sebas

+2

Thậm chí thú vị hơn: http://www.sqlfiddle.com/#!4/d41d8/9942 – ThinkJet

Trả lời

12

Sau khi điều tra Oracle hỗ trợ kết luận rằng vấn đề này là một lỗi.

Lỗi 16707134: REGEXP_COUNT PATTERN '^' VÀ DÒNG MỚI KHÔNG ĐƯỢC HẠNH PHÚC MÔI TRƯỜNG

+0

Bạn có thể liên hệ với bộ phận Hỗ trợ của Oracle để giải quyết vấn đề tương tự trong [câu hỏi] khác của tôi (http://stackoverflow.com/q/16702672/1847592) không? –

+0

@EgorSkriptunoff Xin lỗi, nhưng bây giờ tôi không có quyền truy cập vào Metalink. Nhưng bạn có thể đặt câu hỏi này trên diễn đàn cộng đồng Oracle https://forums.oracle.com/forums/category.jspa?categoryID=18 Diễn đàn này dường như được giám sát bởi các chuyên gia hỗ trợ của Oracle và trông giống như nơi hữu ích để có được câu trả lời có thẩm quyền. – ThinkJet

+0

@ThinkJet bạn đã kiểm tra chr (10) đó với V $ NLS_PARAMETERS chưa? –

Các vấn đề liên quan