本文主要是介绍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。 |
这篇关于mysql数据库的 char 类型数据 导入到sql server2008R2 一直报长度不匹配的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!