Tôi biết cách bộ ký tự cơ sở dữ liệu ( NLS_CHARACTERSET
trong select * from v$nls_parameters;
) và bộ ký tự máy khách (cài đặt môi trường máy khách NLS_LANG
) tương tác với nhau.
Tuy nhiên, điều tôi không thể tìm ra là làm thế nào hoặc nếu tôi có thể xác định, đối với một phiên đã được thiết lập , Oracle nghĩ gì về bộ ký tự máy khách hiện tại.
cái này nó có hoàn toàn có thể xảy ra được không?
Lưu ý: SELECT * FROM NLS_SESSION_PARAMETERS;
không không bao gồm các bộ ký tự (trên 10g2).
Để làm rõ hoàn toàn những gì tôi muốn thực hiện:
- NLS_LANG được đặt trong môi trường máy khách thành một giá trị tùy ý (ví dụ
GERMAN_GERMANY.WE8MSWIN1252
) - Ứng dụng cơ sở dữ liệu [*] khởi động và thiết lập kết nối / phiên tới cơ sở dữ liệu Oracle.
- Ứng dụng cơ sở dữ liệu [*] muốn "hỏi" Oracle (không phải môi trường HĐH của nó) bộ ký tự khách là gì mà Oracle sẽ đảm nhận.
[*]: Nếu ứng dụng db là sqlplus, ví dụ sẽ như sau:
...
sqlplus /nolog
connect user/pass@example
*magic command*;
CLIENT CHARACTERSET = ...
Ghi chú của Jack trong câu trả lời của ông nêu lên hai điểm quan trọng:
- Với Oracle, người dịch thuật nhân vật. Đây có phải là mã thư viện khách hay nó được thực hiện ở phía máy chủ?
- Khi nó xuất hiện, nó là máy khách, máy khách sẽ cần hiển thị cài đặt này - công cụ lib / công cụ của máy khách giả định cài đặt này là gì. Có bất kỳ lib / công cụ máy khách nào của Oracle (sqlplus, OCI / OCCI, Pro * C, ...) có thể được truy vấn cho những gì nó nghĩ rằng cài đặt này không?