K nahrazení symbolů použijte TRANSLATE
funkce, je méně náročná na procesor než funkce regulárních výrazů:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
REPLACED
--------
-<FIO>-
Regulární výrazy jsou všestrannější a mohou dělat složitější věci, ale jsou dražší. V tomto případě je nahrazení jednoho znaku jiným provedeno efektivněji specializovanou funkcí. Pokud opravdu chcete používat regulární výrazy, můžete použít REGEXP_REPLACE
:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
REG
---------
--<FIO>--
Aktualizace:Pokud chcete nahradit pouze první symbol, překlad nebude fungovat. Místo toho použijte:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
REG
---------
-(<FIO>)]