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

Làm cách nào để chọn các hàng có ký tự UTF-8 4 byte trong Oracle DB?

Bạn có thể sử dụng hàm UNISTR ; ký tự 𠜎 là codepoint U + 2070E , trong UTF-16 là D841DF0E. Như tài liệu lưu ý:

Có nghĩa là bạn có thể đại diện cho nó bằng:

select unistr('\D841\DF0E') from dual;

UNISTR('\D841\DF0E')
--------------------
𠜎

Sau đó, bạn có thể sử dụng UNISTR để tạo phạm vi của mình:

select REGEXP_REPLACE('asd𠜎aasd', 
  '[' 
  || UNISTR('\D800\DC00') 
  || '-' 
  || UNISTR('\DBFF\DFFF') 
  || ']', '') 
from dual;

REGEXP_REPLACE('ASD𠜎AASD','['||UNISTR('\D800\DC00')||'-'||UNISTR('\DBFF\DFFF')||']','')
----------------------------------------------------------------------------------------
asdaasd

Giả sử bạn muốn loại trừ tất cả các ký tự bổ sung; bạn có thể điều chỉnh phạm vi nếu bạn có tiêu điểm hẹp hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ cho phép 3 hàng được thêm vào bảng cho một giá trị cụ thể

  2. Hàm giống UTL_MATCH để hoạt động với CLOB

  3. Trình tự Oracle nhưng sau đó trong MS SQL Server

  4. Hàm được lưu trữ trong Oracle - chuyển tên bảng làm tham số

  5. Thay đổi giá trị đã chèn bằng trình kích hoạt