Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL Regex ne renvoie pas les résultats attendus

Oracle ne prend pas en charge les groupes sans capture (?:) . Vous devrez utiliser un groupe de capture à la place.

Il n'aime pas non plus le méta-caractère d'espace blanc de style perl \s correspondance à l'intérieur d'une classe de caractères [] (il correspondra aux caractères \ et s au lieu d'espaces blancs). Vous devrez utiliser l'expression POSIX [:space:] à la place.

SQL Fiddle

Configuration du schéma Oracle 11g R2 :

Requête 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,}')

Résultats :

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