2013-07-25 1 views
0

У меня есть база данных MSSQL, которая связана с «связанным сервером» в mssql с подключением odbc к mysql. Версия соединителя MySQL - 5.2.3w, а набор символов - UTF-8.ODBC MySQL Connector: не работает с такими символами, как «ä, ö, ü»

я пытаюсь выполнить следующее заявление, только, например, в 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

Важно использовать драйвер WD OWBC, а не версию «a». «W» -версия предназначена для символов Unicode и «a» для ANSI. В моем случае я должен взять версию «w».

Строки больше не будут вырезаны, но с Openquery специальные символы будут неправильно установлены в моем случае. Решение заключается в использовании

EXEC('Insert Into ....') AT LINKEDSERVERNAME 

Unfortunatly он не работает наоборот ...

Insert Into LocalMSSQLTableName Select * FROM OPENQUERY(LINKEDSERVERNAME, 'Select * FROM MySQLTable') 

Единственное решение в моем случае для кодирования специальных символов, чтобы избежать этих проблем.

Смежные вопросы