最近遇到这个问题。oracle查询后表的中文数据,表数据显示为???
出现问题后首先检查
select userenv('language')from dual
结果正常应该是简体GBK:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
出现问题后,首先检查注册表是否被串改。
win+R 运行 regedit 进去注册表编辑器
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\<home>
<home>不同oracle显示不同我的为HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb11g_home1
查找键值:NLS_LANG 检查数据是否为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
如果不是进行修改。
注册表检查后。
PL/sql 检查是否还有该问题。一般情况下,问题应该解决。
但是被串改的注册表有可能再次被串改。可以通过添加系统环境变量来解决这个问题
管理员模式cmd执行
wmic ENVIRONMENT create name="NLS_LANG",username="<system>",variableValue="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
pause
或者在 我的电脑→属性→高级系统设置→环境变量中新建系统变量
NLS_LANG 赋值 SIMPLIFIED CHINESE_CHINA.ZHS16GBK