mysql数据库的 char 类型数据 导入到sql server2008R2 一直报长度不匹配


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。



猜你喜欢

转载自blog.csdn.net/stableboy/article/details/79358867