日期:2014-05-16  浏览次数:20783 次

Sqlserver垮库查询 openquery乱码问题 请教
各路大神来过留个话啊!!!
请教一下 使用openquery垮库查询oracle 数据是出现中文乱码有什么原因
  我sqlserver的服务器排序规则设置的是  Chinese_PRC_CI_AS
  Oracle(是这个吗?) :SQL>  select userenv('language') nls_lang from dual;
                   NLS_LANG
                   ----------------------------------------------------
                   SIMPLIFIED CHINESE_CHINA.ZHS16GBK

查出来的东西就是乱码。
------解决方案--------------------
没有用Unicode类型来存储和操作
------解决方案--------------------
SELECT '黄',N'黄'
/*
     
---- ----
?    黄
*/

因为默认会根据本机的字符集来存储数据,如果是多语言环境,需要使用Unicode类型,不然会乱码
------解决方案--------------------
sql server企业管理器能不能看到这个连接,在属性,指定一个兼容Oracle的排序
------解决方案--------------------
引用:
问题解决了 在Oracle端的服务器添加系统环境变量
NLS_LANG  SIMPLIFIED CHINESE_CHINA.ZHS16GBK
我在sqlserver端的服务器也添加了这个变量 
重启 ...就好了


在oracle端添加了这个变量,就好了,谢谢分享