bcp导入导出数据发生异常解决方案
2009-10-09 18:19 清炒白菜 阅读(1552) 评论(0) 编辑 收藏 举报
用BCP导出的数据,经常会遇到"遇到EOF","字符串右截断"之类的错误.
这些错误信息又很模糊, 很难一下子定位到底是什么错误.
我总结了一下, 自己遇到的几种情况
1.表结构不同
2.bcp版本不一致, 在处理某些类型的时候,导致错位(比如sql2000中没有varchar(max), 只有在sql2005中才有)
3.字段类型一致, 字段长度一致, 但是Nullable不同, 也会导入失败
快速检查出, 导入导出的2个表结构, 是否一致, 用下面的命令
bcp {DBName.dbo.Table} format nul -n -f aa.txt -S %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 ""
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个文件的所有字段信息都要一致, 就能解决导入出错的各种异常了.