我知道数据库字符集(NLS_CHARACTERSET
中的select * from v$nls_parameters;
)和客户端字符集(客户端环境设置NLS_LANG
)如何交互。
但是,我无法确定的是,对于已建立的会话,如何或是否可以确定Oracle认为当前客户端特征集是什么。
这有可能吗?
注:SELECT * FROM NLS_SESSION_PARAMETERS;
不不包含字符集(上10G2)。
明确说明我要完成的工作:
- NLS_LANG在客户端环境中设置为任意值(例如
GERMAN_GERMANY.WE8MSWIN1252
) - 数据库应用程序[*]启动并建立与Oracle数据库的连接/会话。
- 数据库应用程序[*]希望“询问” Oracle(而不是其OS环境)Oracle将承担的客户端字符集。
[*]:如果数据库应用程序是sqlplus,则示例如下所示:
...
sqlplus /nolog
connect user/pass@example
*magic command*;
CLIENT CHARACTERSET = ...
杰克的回答中提出了两个要点:
- 借助Oracle,谁做的字符集转换。它是客户端库代码还是在服务器端完成?
- 看起来是客户端,客户端需要公开此设置-客户端库/工具假定此设置是什么。是否可以查询任何Oracle客户端库/工具(sqlplus,OCI / OCCI,Pro * C等)?