sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL Regex returnerar inte förväntade resultat

Oracle stöder inte icke-fångande grupper (?:) . Du måste använda en fångstgrupp istället.

Den gillar inte heller meta-teckenet \s i perl-stil matcha inuti en teckenklass [] (det kommer att matcha tecknen \ och s istället för blanksteg). Du måste använda POSIX-uttrycket [:space:] istället.

SQL Fiddle

Oracle 11g R2 Schema Setup :

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

Resultat :

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



  1. Visar alla dubbletter, sida vid sida, i MySQL

  2. Kan log4jdbc användas med fjädersko?

  3. Cloud Native och DevSecOps i skala med Capgemini Agile Innovation Platform och Oracle Cloud

  4. Är det möjligt att använda pandas/sqlalchemy för att infoga arrays i SQL-databasen? (postgres)