sql >> Database >  >> RDS >> Oracle

Oracle SQL Regex geeft de verwachte resultaten niet terug

Oracle ondersteunt geen niet-vastleggende groepen (?:) . U moet in plaats daarvan een vastleggroep gebruiken.

Het houdt ook niet van het perl-stijl witruimte meta-teken \s match binnen een tekenklasse [] (het komt overeen met de tekens \ en s in plaats van witruimte). U moet de POSIX-expressie [:space:] . gebruiken in plaats daarvan.

SQL Fiddle

Oracle 11g R2 Schema-instellingen :

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

Resultaten :

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



  1. Onjuist sleutelbestand met MySQL

  2. mysql tussen zoekopdracht in datums

  3. Leer hoe u SQL SELECT gebruikt met voorbeelden

  4. Vind externe sleutel die overeenkomt met meerdere rijwaarden