Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога да заменя скоби с тирета във функцията REGEXP_REPLACE на Oracle?

За да замените символи, използвайте TRANSLATE функция, тя изисква по-малко процесор от функциите за регулярен израз:

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

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

Регулярните изрази са по-гъвкави и могат да правят по-сложни неща, но са по-скъпи. В този случай замяната на един знак с друг се извършва по-ефективно от специализирана функция. Ако наистина искате да използвате регулярни изрази, можете да използвате REGEXP_REPLACE :

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

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

Актуализация:Ако искате да замените само първия символ, преводът няма да работи. Вместо това използвайте:

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. Нетривиално сливане на две таблици

  2. Пример за демонстриране на уязвимостта на SQL инжекцията и нейното предотвратяване в Oracle

  3. CURRENT_TIMESTAMP() Функция в Oracle

  4. Пълният път на JDK инсталация за Oracle SQL Developer

  5. Изберете само колони без стойности Null в Oracle