Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để thay thế dấu ngoặc vuông thành dấu gạch ngang trong hàm Oracle REGEXP_REPLACE?

Để 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>)]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về Java trong Cơ sở dữ liệu Oracle

  2. APEX:Chuyển hướng sau khi đăng nhập đến một trang có đối số

  3. Loại Dapper &Oracle Clob

  4. ORA-01438:giá trị lớn hơn độ chính xác được chỉ định cho phép đối với cột này khi chèn 3

  5. Làm thế nào để thay đổi ràng buộc