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

Jak zamienić nawiasy na łączniki w funkcji Oracle REGEXP_REPLACE?

Aby zastąpić symbole, użyj TRANSLATE funkcja, jest mniej obciążająca procesor niż funkcje wyrażeń regularnych:

SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;

REPLACED
--------
-<FIO>-

Wyrażenia regularne są bardziej wszechstronne i mogą robić bardziej złożone rzeczy, ale są droższe. W takim przypadku zamiana jednego znaku na inny jest bardziej efektywna dzięki wyspecjalizowanej funkcji. Jeśli naprawdę chcesz używać wyrażeń regularnych, możesz użyć REGEXP_REPLACE :

SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;

REG
---------
--<FIO>--

Aktualizacja:jeśli chcesz zastąpić tylko pierwszy symbol, tłumaczenie nie zadziała. Zamiast tego użyj:

SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;

REG
---------
-(<FIO>)]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co oznacza INTERVAL=0 w Oracle Schedular?

  2. Przyznaj wszystkie uprawnienia użytkownikowi na schemacie Oracle

  3. Najnowszy dostawca danych Oracle dla platformy .NET (11.2.03.20) przerywa Kreatora aktualizacji EF

  4. Jak napisać zapytanie, które robi coś podobnego do GROUP_CONCAT MySQL w Oracle?

  5. Oracle:wyodrębnianie graficznej reprezentacji bazy danych