返回列表 发帖

[软件故障] PL/SQL数据库中中文显示乱码、全是问号的解决方法

个人实践:加了一个环境变量NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK  成功了

这个可能是oracle客户端和服务器端的编码方式不一样。
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';
--数据库服务器字符集
select * from nls_database_parameters;
--客户端字符集
--表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
select * from nls_instance_parameters;
--会话字符集的设置,这个没有特殊设置的话,和nls_instance_parameters一致
select * from nls_session_parameters;
如果数据库服务器端的编码和客户端字符集编码不一样,则会导致乱码,因此需要更改客户端的编码方式。
更改客户端的编码方式有两种方式,第一种是更改注册表,这个比较危险,就不在这里提及。第二种是设置环境变量。
设置环境变量,新建一个环境变量:NLS_LANG,值是:AMERICAN.ZHS16GBK。
值的构成方式是数据库中查询的服务器端的“NLS_LANGUAGE的值”+“.”+“NLS_CHARACTERSET的值”
欢迎光临:逐梦论坛

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 鲁公网安备 37120302000001号