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:
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
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:
Trong trường hợp của tôi, file sqldeveloper.conf sau khi sửa sẽ có nội dung như sau:
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.
Bạn sẽ thấy bản ghi xuất hiện ở khung kết quả.
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:
Đăng nhận xét