MS SQL SERVER 和 Sybase 之间的链接连接,Unicode 问题
我在 MS SQL SERVER 2008 上使用 Sybase ASE 12.5 数据库添加了链接服务器, 一切正常,但我遇到了 unicode 字符串问题。
当我运行时来自 MS SQL “SELECT * FROM OPENQUERY(SYTEST,'从产品中选择名称')” 结果集包含错误字符
a?›a??a??a? a?”
??a??a???a??a? a??
Sybase中的名称列是nvarchar类型,名称以unicode编写。
仅当 ms sql server 在 Windows Server 操作系统上运行时才会出现问题, 在 Windows 7 和 XP 上运行的 ms sql-servers 上没有问题,我得到了正确的结果。
I added linked server on MS SQL SERVER 2008 with Sybase ASE 12.5 databases,
everything works fine, but i've got problem with unicode strings.
from MS SQL when i'am running
"SELECT * FROM OPENQUERY ( SYTEST ,'SELECT Name FROM PRODUCT')"
and the result set contains wrong characters
a?›a??a??a? a?”
a??a??a?¬a??a? a??
Name column in Sybase is of nvarchar type , names are written in unicode.
Problem occurs only when ms sql server is running on windows server operating system,
There is no problem on ms sql-servers running on Windows 7 and XP, where I got correct result.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查询时尝试使用N@参数
try to use N@parameter when making query
如果它适用于 2 个单独的安装,则可以使用 sp_serveroption< 比较并检查链接服务器设置/a>,尤其是
排序规则兼容
和排序规则名称
如果它们相同,请检查操作系统中的所有 DSN 和 Sybase 驱动程序设置
If it works on 2 separate installs, you compare and check the linked server settings using sp_serveroption, especially
collation compatible
andcollation name
If these are the same, check any DSN and Sybase driver settings in the OS
我公司就有这样的案例
我创建了一个从 SQL Server 2014 到 IBM AS/400(i 系列)的链接服务器,并面临同样的问题。
我不确定 2014 年和 2008 年处理 unicode 字符之间的差异,但我认为差异不大(如果有的话)。
如何
1.登录SQL studio
2.右键单击链接服务器,然后选择“属性”
3. 在左侧窗格中选择“服务器选项”
4. 将“使用远程排序规则”设置为“True”
5. 在“排序规则名称”中,选择您的 unicode (这是基本列表 - https://technet.microsoft.com/en-us/library/ms180175%28v=sql.105%29.aspx"
我的问题就这样解决了!(我使用连接字符串玩了很多,但没有得到想要的结果)
There is a case like this in my company
I've created a linked server from SQL Server 2014 to the IBM AS/400 (i series) and faced with the same problem.
I'm not sure about the different between 2014 and 2008 handle the unicode chars but I think it not much, if any.
How to
1. login to the SQL studio
2. right click the linked server then select "properties"
3. select "Server options" in left pane
4. set "Use remote collation" to "True"
5. in "Collation name", choose your unicode (here is the basic list - https://technet.microsoft.com/en-us/library/ms180175%28v=sql.105%29.aspx"
My problems solved this way! (I played a lot with connection strings with no desired results)