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

Jak uzyskać część ciągu pasującego do wyrażenia regularnego w Oracle SQL?

Jednym ze sposobów na to jest REGEXP_REPLACE. Musisz zdefiniować cały ciąg jako wzorzec regex, a następnie użyć tylko wybranego elementu jako replace string . W tym przykładzie ColorID jest trzecim wzorem w całym łańcuchu

SELECT REGEXP_REPLACE('product=1627;color=45;size=7'
                         , '(.*)(color\=)([^;]+);?(.*)'
                         , '\3') "colorID"  
FROM DUAL;  

Możliwe, że będzie mniej niezgrabnych rozwiązań regex, ale to zdecydowanie działa. Oto skrzypce SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego Oracle.ManagedDataAccess nie działa, gdy działa Oracle.DataAccess?

  2. SEC_CASE_SENSTIVE_LOGON za 12c

  3. Hibernacja:jak wywołać funkcję składowaną zwracającą varchar?

  4. Oracle - porównywanie domyślnej wartości kolumny

  5. Jak mogę połączyć się z bazą danych Oracle z poziomu Ant przy użyciu nazwy tnsname?