sql >> Base de Datos >  >> RDS >> Oracle

Oracle SQL Regex no devuelve los resultados esperados

Oracle no admite grupos que no capturan (?:) . En su lugar, deberá utilizar un grupo de captura.

Tampoco le gusta el metacarácter de espacio en blanco estilo perl \s coincidencia dentro de una clase de carácter [] (coincidirá con los caracteres \ y s en lugar de espacios en blanco). Deberá usar la expresión POSIX [:space:] en su lugar.

SQL Fiddle

Configuración del esquema de Oracle 11g R2 :

Consulta 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,}')

Resultados :

|    STR |
|--------|
|   1234 |
|  12345 |
| 12 135 |