Để thay thế các ký hiệu, hãy sử dụng TRANSLATE
, nó ít tốn bộ xử lý hơn so với các hàm biểu thức chính quy:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;
REPLACED
--------
-<FIO>-
Biểu thức chính quy linh hoạt hơn và có thể thực hiện những việc phức tạp hơn nhưng đắt hơn. Trong trường hợp này, việc thay thế một ký tự này bằng một ký tự khác được thực hiện hiệu quả hơn bởi một chức năng chuyên biệt. Nếu bạn thực sự muốn sử dụng biểu thức chính quy, bạn có thể sử dụng REGEXP_REPLACE
:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;
REG
---------
--<FIO>--
Cập nhật:Nếu bạn chỉ muốn thay thế ký hiệu đầu tiên, tính năng dịch sẽ không hoạt động. Thay vào đó, hãy sử dụng:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;
REG
---------
-(<FIO>)]