Hầu hết có thể là do sự không khớp giữa bộ ký tự NLS dành riêng cho từng ngôn ngữ và bộ ký tự cơ sở dữ liệu . Hoặc nếu không, NLS_LANG giá trị không được đặt chính xác trong biến môi trường OS .
Hãy xem Tại sao các giá trị rác / ký tự đặc biệt / dấu chấm hỏi lại hiển thị trên ứng dụng khách của tôi?
- Tập ký tự ứng dụng khách của bạn không khớp với tập ký tự cơ sở dữ liệu.
Bạn có thể so sánh giữa:
-- locale-specific characterset
select value
from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';
-- database characterset
select value
from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
Nếu bạn thấy không khớp giữa cả hai, hãy đặt bộ ký tự NLS dành riêng cho ngôn ngữ địa phương thành bộ ký tự cơ sở dữ liệu.
- Nếu các tập ký tự trên khớp nhau, thì bạn cần đặt giá trị NLS_LANG trong biến môi trường OS.
Đối với hệ điều hành Windows, định dạng là:
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
Làm theo hướng dẫn trong tài liệu liên quan đến việc thiết lập NLS_LANG:Đặt Biến Môi trường NLS_LANG cho Cơ sở dữ liệu Oracle