Oracle nie obsługuje grup nieprzechwytujących (?:)
. Musisz zamiast tego użyć grupy przechwytywania.
Nie podoba mu się też metaznak białych znaków w stylu perla \s
dopasowanie wewnątrz klasy znaków []
(dopasuje znaki \
i s
zamiast spacji). Będziesz musiał użyć wyrażenia POSIX [:space:]
zamiast tego.
Konfiguracja schematu Oracle 11g R2 :
Zapytanie 1 :
select *
from (
select column_value str
from table(sys.dbms_debug_vc2coll('123','1234','12345','12 135', '1', '12 3'))
)
where regexp_like(str, '\d([()[:space:]#-]*\d){3,}')
Wyniki :
| STR |
|--------|
| 1234 |
| 12345 |
| 12 135 |