http://www.itpub.net/forum.php?mod=viewthread&tid=1780983&ordertype=1
用Rtrim()
select * from OPENQUERY(MYSQLAPP,'select rtrim(char_col),........ from uc.test');
或者
DBCC TRACEON (8765) WITH NO_INFOMSGS
| 1、在mysql创建表create table test(id varchar(10),name varchar(10)); insert into test values('1','zhang'); insert into test values('2','wang'); 2、在sql server 2008 创建对应的表,通过odbc 远程同步数据 create table test( id varchar(10),name varchar(10) ); insert into test select * from OPENQUERY(MYSQLAPP,'select * from uc.test'); 或者直接 select * into test from OPENQUERY(MYSQLAPP,'select * from uc.test'); 也没问题 如果是这样varchar 类型,同步数据是没有任何问题的。 但是如果换成char类型 1、在mysql创建表create table test(id char(10),name char(10)); insert into test values('1','zhang'); insert into test values('2','wang'); 2、在sql server 2008 创建对应的表,通过odbc 远程同步数据 create table test( id char(10),name char(10) ); insert into test select * from OPENQUERY(MYSQLAPP,'select * from uc.test'); 就要报错了 链接服务器 'MYSQLAPP' 的 OLE DB 访问接口 'MSDASQL' 返回的数据与列 '[MSDASQL].id' 所需的数据长度不匹配。所需的(最大)数据长度为 20,但返回的数据长度为 2。 |
本文探讨了在使用ODBC连接从MySQL同步数据到SQL Server时遇到的问题,特别是当数据类型从MySQL的CHAR转换到SQL Server的CHAR时出现的数据长度不匹配错误。
1239

被折叠的 条评论
为什么被折叠?



