ODBC MySQL Connector:不适用于像“ä,ö,ü”这样的字符

时间:2013-07-25 08:40:19

标签: mysql odbc mysql-connector

我有一个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”行中没有数据,它只是空的。它不是空的。

我做错了什么?谢谢你的帮助!

1 个答案:

答案 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') 

我的唯一解决方案是编码特殊字符以避免这些问题。