bcp导入导出数据发生异常解决方案

用BCP导出的数据,经常会遇到"遇到EOF","字符串右截断"之类的错误.
这些错误信息又很模糊, 很难一下子定位到底是什么错误.

我总结了一下, 自己遇到的几种情况
1.表结构不同
2.bcp版本不一致, 在处理某些类型的时候,导致错位(比如sql2000中没有varchar(max), 只有在sql2005中才有)
3.字段类型一致, 字段长度一致, 但是Nullable不同, 也会导入失败


快速检查出, 导入导出的2个表结构, 是否一致, 用下面的命令
bcp {DBName.dbo.Table}  format  nul  --f aa.txt -%DBSERVER% -U"%DBUSERNAME%-P"%DBPWD%"

返回的数据内容
9.0
10
1       SQLINT        0       4       ""   1     ID                                 ""
2       SQLINT        1       4       ""   2     User_Accounts                      ""
3       SQLINT        1       4       ""   3     MoneyNum                           ""
4       SQLINT        1       4       ""   4     EventID                            ""
5       SQLNCHAR      2       400     ""   5     Describe                 Chinese_PRC_CI_AS
6       SQLDATETIME   1       8       ""   6     EventDate                          ""
7       SQLINT        1       4       ""   7     ServerID                           ""
8       SQLINT        1       4       ""   8     ServerType                         ""
9       SQLNCHAR      2       400     ""   9     Remark                   Chinese_PRC_CI_AS
10      SQLINT        0       4       ""   10    CurrentDianQuan                    ""

第一行是BCP版本, 导入导出的时候, 最好要一致.
第二行是字段数量
第三行开始, 导入导出的2台电脑上, 这2个文件的所有字段信息都要一致, 就能解决导入出错的各种异常了.




转载于:https://www.cnblogs.com/yushiro/archive/2009/10/09/1579814.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值