1

我正在尝试使用 bcp 实用程序加载我的 Azure SQL 数据仓库,但在一个又一个问题中遇到问题......我终于得到了一个 .txt 文件,其中包含一条记录可以成功导入,但是现在当我将两条或更多记录放入该文件,它会出现错误(通过错误输出文件):

第 1 行第 5 列:数值超出范围

数据如下所示:

2014-06-01,11111,test,used,1
2014-06-01,22222,test,used,1

我要导入的表如下所示:

[Date] (date, not null)
[Code] (varchar(50), not null)
[Model] (varchar(100), not null)
[Type] (varchar(20), not null)
[Quantity] (int, not null)

我认为这与换行符有关,但我无法解决它。我尝试将 Notepad++ 中的编码更改为 ANSI、ISO-8859-1、UTF-8 w/o BOM,以及使用 Visual Studio CODE 的 UTF-16 LE & BE。当指定'ANSI'时,单行文件导入成功。行尾顺序设置为LF,我的bcp命令如下:

bcp Schema.Table in C:\BcpFiles\sourceData.txt -S serverName -d databaseName -U userName -P password -q -c -t "," -r/n -e C:\BcpFiles\Errors.txt
4

1 回答 1

1

-r 参数需要反斜杠而不是正斜杠:尝试使用 -r \n 代替。本文解释了各种组合:https ://msdn.microsoft.com/en-gb/library/ms191485.aspx

更新:

create table tst (
[Date] date not null,
[Code] varchar(50) not null,
[Model] varchar(100) not null,
[Type] varchar(20) not null,
[Quantity] int not null
)

然后使用这个:

bcp dbo.tst in so.txt -S TONYMSI -d AdventureWorks2012 -T -q -c -t "," -r \n

工作得很好。

于 2015-12-01T21:03:43.450 回答