日期:2014-05-17  浏览次数:21097 次

oracle数据出现乱码如何解决(数据库的编码和注册表都设成一致了)?
我用的是oracle9i, 用select userenv('LANGUAGE') from dual 看到的编码是"SIMPLIFIED CHINESE_CHINA.US7ASCII" ,
在注册表中“NLS_LANG”也设置为相同的编码的,但是用往里面插入中文数据后,查出来的都是“?”, 在命令窗口,pl/sql等工具都是如此,
请问这种情况该如何解决?


------解决方案--------------------
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0下,
如一般的简体中文
nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

2:查看数据库当前字符集参数设置

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK


查询结果是一样的?
------解决方案--------------------
探讨
我用的是oracle9i, 用select userenv('LANGUAGE') from dual 看到的编码是"SIMPLIFIED CHINESE_CHINA.US7ASCII" ,
在注册表中“NLS_LANG”也设置为相同的编码的,但是用往里面插入中文数据后,查出来的都是“?”, 在命令窗口,pl/sql等工具都是如此,
请问这种情况该如何解决?

------解决方案--------------------
探讨
问题解决了,原来我只修改了 oracle下的NLS_LANG ,没修改到\Oracle\HOME0下的NLS_LANG ,
请问这2个有什么区别?