Untuk mengganti simbol, gunakan TRANSLATE
fungsi, ini kurang intensif prosesor dibandingkan fungsi ekspresi reguler:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
REPLACED
--------
-<FIO>-
Ekspresi reguler lebih fleksibel dan dapat melakukan hal-hal yang lebih kompleks tetapi lebih mahal. Dalam hal ini, mengganti satu karakter dengan karakter lain dilakukan secara lebih efisien oleh fungsi khusus. Jika Anda benar-benar ingin menggunakan ekspresi reguler, Anda dapat menggunakan REGEXP_REPLACE
:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
REG
---------
--<FIO>--
Pembaruan:Jika Anda hanya ingin mengganti simbol pertama, terjemahan tidak akan berfungsi. Sebagai gantinya, gunakan:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
REG
---------
-(<FIO>)]