Sửa lỗi không Truy vấn được unicode sử dụng Oracle SQL Developer - QuânSysAd's Blog

27 tháng 3 2015

Sửa lỗi không Truy vấn được unicode sử dụng Oracle SQL Developer

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ả.

Không có nhận xét nào: