我有一个MSSQL数据库,它与mssql中的“链接服务器”连接到与mysql的odbc连接。 MySQL Connector Version为5.2.3w,charset设置为UTF-8。
我尝试执行以下语句,例如在mssql:
中Insert Into openquery(VERBINDUNGSSERVERNAME, 'SELECT `D` FROM `atd_ec_helper_delete`' )
Select * FROM (
Select 'Ä' as a
UNION
Select 'Ö' as a
UNION
Select 'ü' as a
UNION
Select '?' as a
UNION
Select '~' as a
) b
它添加了五行,但只插入了最后两行(?和〜)。前三行在“D”行中没有数据,它只是空的。它不是空的。
我做错了什么?谢谢你的帮助!
答案 0 :(得分:0)
采用“w”ODBC驱动程序非常重要,而不是“a”版本。 “w”-version用于unicode字符,“a”用于ANSI。在我的情况下,我必须采用“w”版本。
字符串不会再被剪切了,但是在我的情况下,使用Openquery特殊字符会被设置错误。解决方案是使用
EXEC('Insert Into ....') AT LINKEDSERVERNAME
不幸的是,它不起作用反之亦然......
Insert Into LocalMSSQLTableName Select * FROM OPENQUERY(LINKEDSERVERNAME, 'Select * FROM MySQLTable')
我的唯一解决方案是编码特殊字符以避免这些问题。