За да замените символи, използвайте 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>)]