2015-12-01 3 views
1

Я пытаюсь загрузить свой хранилище данных Azure SQL с помощью утилиты bcp, но после этого проблема возникла ... Я, наконец, получил текстовый файл с одной записью импортировать успешно, но теперь, когда я положил два или несколько записей в файл, это бомбы с ошибкой (через выходной файл ошибок):Ошибка BCP Числовое значение вне диапазона при импорте многострочного файла в хранилище данных Azure SQL

Ряд 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 без спецификации, а также UTF-16 LE & BE с Visual Studio CODE. Когда был указан «ANSI», однострочный файл импортируется успешно. Последовательность конца-линии устанавливается на НЧ, и моя 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 

ответ

1

параметр -r требует обратный слэш, а не вперед: попробуйте -r \ п вместо. В данной статье рассматриваются различные комбинации: https://msdn.microsoft.com/en-gb/library/ms191485.aspx

UPDATE:

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 в so.txt -S TONYMSI -d AdventureWorks2012 -T -q -c -t "," -r \ n

Работал нормально.

+0

Спасибо за ваш ответ. Это, однако, не разрешило это для меня. Он по-прежнему работает с одной записью, но когда я добавляю разрыв строки (LF), ошибка: «Недопустимое значение символа для спецификации литья» и все еще указывает на столбец 5 (номер 1 вставляется в столбец INT). –

+0

Можете ли вы взглянуть на обновление моего ответа - отлично работает для меня. Это вызывает вопрос - можете ли вы выполнить скрипт таблицы, в которую вы пытаетесь включить BCP, в базу данных, указанную -d, также обратите внимание, что существует пробел между -r и \ n –

+0

Azure SQL Data Warehouse поддерживает только BCP с UTF -8. При повторной попытке был файл в UTF-8? –