从Mysql搬数据到SQL server报错 The (maximum) expected data length is 28, while the returned data length is 0

前不久写了一篇文章跨数据库数据传输:利用ODBC从MySQL传输数据到SQL server介绍了通过ODBC的方式,把数据从MySQL迁移到SQL Server,但是在迁移的过程中,你会发现很多头疼的报错。

比如下面这条:

Msg 7347, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' for linked server 'MYSQL' returned data that does not match expected data length for column '[MSDASQL].USED_TIME'. The (maximum) expected data length is 28, while the returned data length is 0

明明最大长度是28,现在返回0,却报错了,按理说没有超过最大长度啊。然后你会发现不论是更改SQL server的字段格式还是取数的时候各种cast,都是没有效果。这个应该是ODBC驱动造成的,要解决这个问题有两种方式:

 

方法一:.更改MySQL中的字段格式,比如我的报错中used_time字段是char格式的,把它改成varchar就可以了

方法二:.在SQL server执行语句之前加一句DBCC TRACEON(8765)就可以了,这个表示在ODBC同意使用可变长度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值