Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle SQL Regex nie zwraca oczekiwanych wyników

Oracle nie obsługuje grup nieprzechwytujących (?:) . Musisz zamiast tego użyć grupy przechwytywania.

Nie podoba mu się też metaznak białych znaków w stylu perla \s dopasowanie wewnątrz klasy znaków [] (dopasuje znaki \ i s zamiast spacji). Będziesz musiał użyć wyrażenia POSIX [:space:] zamiast tego.

Skrzypce SQL

Konfiguracja schematu Oracle 11g R2 :

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

Wyniki :

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczne obracanie tabeli Oracle

  2. Jak przechodzić przez kolumny z PL/SQL?

  3. Oracle:znajdź największą liczbę w jednym ciągu

  4. niejawne sprzężenia wewnętrzne - czy są równe?

  5. Jak używać parametru IN OUT CLOB zdefiniowanego w Stored Proc w Oracle JDBC?