我有一个与IBM AS400 DB2数据库的SQL Server 2012企业版链接服务器连接。
我正在使用IBMDASQL
提供程序进行连接。
我遇到一些匈牙利字符问题:在选择期间,字母Ő
正在转换为O
。
在此示例中,name_converted
列即可,Ő
字母仍为Ő
。
名称列将转换为O
。
SELECT * FROM openquery (g,
SELECT
cast(name as char(35) ccsid 870) as name_converted,
name,
FROM libr.mytable')
我的问题是:我可以创建链接服务器,以便所有角色都使用CCSID 870吗?
EXEC master.dbo.sp_addlinkedserver @server = N'G', @srvproduct = N'HUN00101', @provider = N'IBMDASQL', @datasrc = N'HUN00101'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'G', @useself=N'False',
@locallogin=NULL, @rmtuser=N'query', @rmtpassword='########'
GO
EXEC master.dbo.sp_serveroption @server = N'G', @optname = N'collation compatible',
@optvalue = N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'data access', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'dist', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'pub', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'rpc', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'rpc out', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'sub', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'connect timeout', @optvalue=N'0' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'collation name', @optvalue=null GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'lazy schema validation', @optvalue=N'false' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'query timeout', @optvalue=N'0' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'use remote collation', @optvalue=N'true' GO
EXEC master.dbo.sp_serveroption @server=N'G', @optname=N'remote proc transaction promotion', @optvalue=N'true' GO
由于
答案 0 :(得分:0)
在IBM i系统上,可能没有使用CCSID 870正确标记数据。你能尝试使用" Force Translate"自定义属性并将其设置为870? 注意:这将导致未正确标记CCSID的所有数据都被处理为CCSID 870.