For at erstatte symboler skal du bruge OVERSÆT
funktion, er den mindre processorkrævende end regulære udtryksfunktioner:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
REPLACED
--------
-<FIO>-
Regulære udtryk er mere alsidige og kan gøre mere komplekse ting, men er dyrere. I dette tilfælde udføres udskiftning af et tegn med et andet mere effektivt af en specialiseret funktion. Hvis du virkelig vil bruge regulære udtryk, kan du bruge REGEXP_REPLACE
:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
REG
---------
--<FIO>--
Opdatering:Hvis du kun vil erstatte det første symbol, virker oversættelse ikke. Brug i stedet:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
REG
---------
-(<FIO>)]