BCP数据文件中遇到意外的EOF

问题描述 投票:0回答:1

我正在尝试使用bcp将数据从表复制到另一个数据库中的另一个表。

首先使用创建格式文件

!! bcp dbName1.dbo.tableName1 format nul  -S serverName1 -T -f D:\tableName1_fmt.txt -n

然后使用创建数据文件

!! bcp dbName1.dbo.tableName1 out D:\tableName1.txt  -S  serverName1 -T -c

现在,我尝试使用格式文件将数据文件导入另一个服务器中存在的另一个数据库中的另一个表

!! bcp dbName2.dbo.tableName2 in D:\tableName1.txt -f D:\tableName1_fmt.txt  -S ServerName2 -T -E 

然后生成以下错误

Starting copy...
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]Unexpected EOF encountered in BCP data-file

0 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 1    

我解决了这个问题。但它与Stackoverflow中的现有案例不同。

所以我正在编写我的解决方案,以防有人遇到同样可能会受益。

ssms bcp
1个回答
0
投票

问题在于格式说明符(-c-n)在创建格式文件和数据文件时。

格式文件(-n)和数据文件(-c)的格式说明符不同。

当我将两者的格式说明符更改为-c-n时,import语句有效。

由于保留列的数据类型对我来说很重要,因此-n用于格式文件和数据文件

© www.soinside.com 2019 - 2024. All rights reserved.