Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle SQL Regex não retornando os resultados esperados


Oracle não suporta grupos sem captura (?:) . Você precisará usar um grupo de captura em vez disso.

Ele também não gosta do metacaractere de espaço em branco estilo perl \s corresponder dentro de uma classe de caracteres [] (ele corresponderá aos caracteres \ e s em vez de espaço em branco). Você precisará usar a expressão POSIX [:space:] em vez de.

SQL Fiddle

Configuração do esquema 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 |