Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SQL Regex non restituisce i risultati previsti

Oracle non supporta i gruppi non di acquisizione (?:) . Dovrai invece utilizzare un gruppo di acquisizione.

Inoltre non gli piace il meta-carattere degli spazi bianchi in stile perl \s corrispondenza all'interno di una classe di caratteri [] (corrisponderà ai caratteri \ e s invece di spazi bianchi). Dovrai usare l'espressione POSIX [:space:] invece.

SQL Fiddle

Impostazione dello schema Oracle 11g R2 :

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

Risultati :

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