Per sostituire i simboli, usa TRANSLATE
funzione, è meno dispendioso in termini di processore rispetto alle funzioni di espressione regolare:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
REPLACED
--------
-<FIO>-
Le espressioni regolari sono più versatili e possono fare cose più complesse ma sono più costose. In questo caso, la sostituzione di un carattere con un altro viene eseguita in modo più efficiente da una funzione specializzata. Se vuoi davvero usare le espressioni regolari, puoi usare REGEXP_REPLACE
:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
REG
---------
--<FIO>--
Aggiornamento:se desideri sostituire solo il primo simbolo, la traduzione non funzionerà. Invece, usa:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
REG
---------
-(<FIO>)]