2017-02-10 90 views
0

我正在使用一個Mssql實例,並嘗試使用openquery插入一個LINKED SERVER,但遇到漢字問題。MSSQL鏈接服務器到mysql實例整理字符問題

我的鏈接服務器連接到一個MySQL實例utf8_general_ci並構建它我使用MySQL odbc 5.3 unicode驅動程序,並且在其詳細信息中我已經在charset中指定了utf8。

我會複製我的代碼的主要部分:

insert openquery (MySQL_OBDC_UNICODE,'select id,chinesedescription 
from chinesecodes') 

(select id, descchinese from openquery (SQLSERVER_ODBC,'SELECT id,descchinese FROM tbarticles where idlanguage=''CN''')) 

如果我在SQL Server Management Studio中中國的描述只執行第二選擇指令顯示正常,但是當我試圖讓插入到MySQL鏈接服務器它讓我看到以下內容:鏈接服務器 「MYSQL_OBDC_UNICODE」 的

提供OLE DB 「MSDASQL」 可能0​​不是INSERT INTO表 「[MSDASQL]」 因列 「chinesedescription」。完整性值不滿足列 的限制。

讓我知道你是否需要一些特定的細節提供給我的幫助。

回答

0

做一些研究,我想出了一個解決方案,我的鏈接服務器的排序規則問題後:

1)我強迫鏈接服務器整理Chinese_PRC_CI_AS在我的源排序規則。

(選擇ID,從OPENQUERY descchinese(SQLSERVER_ODBC, 'SELECT標識,descchinese FROM tbarticles Chinese_PRC_CI_AS其中idlanguage =' 'CN' ''))

2)在MySQL UNICODE ODBC DRIVER餘留的字符集屬性爲空,因爲在我使用UTF8之前,我編碼了兩次。

希望它對別人有幫助!