một phương pháp sẽ là sửa đổi các thông số phiên của bạn NLS_SORT
và NLS_COMP
:
SQL> SELECT Name FROM CollationTestTable WHERE NAME LIKE '%pe%';
NAME
--------------------------------------------------------------------------------
pepe
SQL> alter session set nls_sort=Latin_AI;
Session altered
SQL> alter session set nls_comp=linguistic;
Session altered
SQL> SELECT Name FROM CollationTestTable WHERE NAME LIKE '%pe%';
NAME
--------------------------------------------------------------------------------
pepe
pépé
PEPE
Như được hiển thị trong SO khác, bạn không thể sử dụng toán tử LIKE với NLSSORT
(điều này là do, NLSSORT trả về một chuỗi byte sẽ được sử dụng để sắp xếp và LIKE chỉ hoạt động với chuỗi ký tự)
Cập nhật: Mặc dù thiết lập các tham số NLS là lựa chọn đầu tiên của tôi, nhưng bạn cũng có thể sử dụng các hàm tích hợp để đạt được kết quả tương tự. Một vài ví dụ:
SQL> SELECT Name
2 FROM CollationTestTable
3 WHERE upper(convert(NAME, 'US7ASCII'))
4 LIKE upper(convert('%pe%', 'US7ASCII'));
NAME
--------------------------------------------------------------------------------
pepe
pépé
PEPE
SQL> SELECT Name
2 FROM CollationTestTable
3 WHERE upper(translate(NAME, 'àâéèêìîòôùûÿ', 'aaeeeiioouuy'))
4 LIKE upper(translate('%pe%', 'àâéèêìîòôùûÿ', 'aaeeeiioouuy'));
NAME
-----------------------------------
pepe
pépé
PEPE