Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana saya bisa mengganti tanda kurung menjadi tanda hubung dalam fungsi Oracle REGEXP_REPLACE?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menggunakan GROUP_CONCAT di Rails?

  2. Kelompokkan berdasarkan nilai-nilai yang berurutan

  3. Cara Mengembalikan Stempel Waktu Unix di Oracle

  4. Kelompokkan dengan menyebabkan peningkatan besar dalam waktu eksekusi kueri

  5. cara menonaktifkan koneksi simultan oleh satu pengguna di oracle