Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL Regex gibt nicht die erwarteten Ergebnisse zurück

Oracle unterstützt keine nicht erfassenden Gruppen (?:) . Sie müssen stattdessen eine Erfassungsgruppe verwenden.

Es mag auch nicht das Whitespace-Metazeichen \s im Perl-Stil Übereinstimmung innerhalb einer Zeichenklasse [] (Es entspricht den Zeichen \ und s statt Leerzeichen). Sie müssen den POSIX-Ausdruck [:space:] verwenden stattdessen.

SQL-Geige

Oracle 11g R2-Schema-Setup :

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

Ergebnisse :

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