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。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值