Bạn sử dụng Oracle SQL Developer (như tôi sử dụng phiên bản 3.2.10.09) để truy vấn dữ liệu trong bảng. Tuy nhiên khi bạn đánh câu lệnh:
select * from sinh_vien
Thì ở trong bảng sinh_viên, dữ liệu ra đầy đủ, hiển thị rõ tiếng Việt unicode, giả sử có cột ten với bản ghi là 'Nguyễn Văn A'.
Khi bạn đánh tiếp câu lệnh
select * from sinh_vien where ten like N'Nguyễn Văn A'
Thì lại không ra kết quả.
Vấn đề đã được giải quyết theo cách như sau:
Vào thư mục cài đặt của
Oracle SQL Developer \sqldeveloper\sqldeveloper\bin tìm file
sqldeveloper.conf sau đó mở file đó bằng trình soạn văn bản. Trong đó có một loạt các dòng mở đầu bằng
AddVMOption. Thêm một dòng nữa với nội dung như sau:
AddVMOption -Doracle.jdbc.convertNcharLiterals=true
Trong trường hợp của tôi, file sqldeveloper.conf sau khi sửa sẽ có nội dung như sau:
IncludeConfFile ../../ide/bin/ide.conf
SetJavaHome ../../jdk
AddVMOption -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true
AddVMOption -Dsun.java2d.ddoffscreen=false
AddVMOption -Dwindows.shell.font.languages=
AddVMOption -XX:MaxPermSize=256M
AddVMOption -Doracle.jdbc.mapDateToTimestamp=false
AddVMOption -Doracle.jdbc.convertNcharLiterals=true
IncludeConfFile sqldeveloper-nondebug.conf
Sau đó bạn mở Oracle SQL Developer thực hiện lại truy vấn với câu lệnh có Unicode (tiếng Việt) trong cửa sổ soạn thảo SQL.
Lưu ý chuỗi Unicode phải bắt đầu bằng chữ N.
select * from sinh_vien where ten like N'Nguyễn Văn A'
Bạn sẽ thấy bản ghi xuất hiện ở khung kết quả.