Ошибка нечетной массовой вставки - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь отладить массовую вставку SQL Server 2008 и получаю ошибки, которые на самом деле не складываются.

T-SQL

BULK INSERT [dbo].SYNC_OFFERDISCOUNTS 
FROM 'c:\inetpub\ftproot\ecometrydev\offer-discounts.csv' 
WITH (BATCHSIZE = 500, FIRSTROW = 2, ROWTERMINATOR = '\n', FIELDTERMINATOR ='||^^||')

И мои ошибки

Сообщение 4863, Уровень 16, Состояние 1, Строка 3 Ошибка преобразования данных при массовой загрузке (усечение) для строки 2, столбца 72 (ACTION_TYPE).

Сообщение 4863, Уровень 16, Состояние 1, строка 3 Ошибка преобразования данных массовой загрузки (усечение) для строки 3, столбец 72 (ACTION_TYPE).

Сообщение 4863, Уровень 16, Состояние 1, Строка 3, Массовая загрузить ошибку преобразования данных (усечение) для строки 4, столбца 72 (ACTION_TYPE).

И так далее, до строки 12, в которой достигаются 10 ошибок, и все это закрывается. Моя схема базы данных и частичное содержание CSV приведены ниже. Мне кажется, что для ACTION_TYPE вставляется один символ I, поэтому я не уверен, почему происходит эта ошибка.

EDIT

Особенно расстраивает тот факт, что в файле есть только 71 столбцов, а последний столбец файла соответствует ACTION_TYPE.

/ EDIT

Я уже пытался увеличить этот столбец до varchar(50), думая, что, возможно, устаревшая система, которая создала этот CSV, скользила в какой-то скрытой бессмысленной бессмысленной чепухе, но это ничего не изменило.

Я знаю, что здесь много дерьма. Я уже пересчитывал все эти нули снова и снова, и всегда получается, что этот единственный символ I точно прорезан, чтобы попасть в столбец ACTION_TYPE. Я надеюсь, что где-то есть какая-то неясная ошибка, которую может обнаружить эксперт.


CSV

DISCOUNTTABLE || ^^ || MULTIQTY_001 || ^^ || MULTIQTY_002 || ^^ || MULTIQTY_003 || ^^ || MULTIQTY_004 || ^^ || MULTIQTY_005 || ^^ || MULTIQTY_006 || ^^ || MULTIQTY_007 || ^^ || MULTIQTY_008 || ^^ || MULTIQTY_009 || ^^ || DISCOUNTPERCENT_001 || ^^ || DISCOUNTPERCENT_002 || ^^ || DISCOUNTPERCENT_003 || ^^ || DISCOUNTPERCENT_004 || ^^ | | DISCOUNTPERCENT_005 || ^^ || DISCOUNTPERCENT_006 || ^^ || DISCOUNTPERCENT_007 || ^^ || DISCOUNTPERCENT_008 || ^^ || DISCOUNTPERCENT_009 || ^^ || DISCOUNTITEM_001 || ^^ || DISCOUNTITEM_002 || ^^ || DISCOUNTITEM_003 || ^^ || DISCOUNTITEM_004 || ^^ || DISCOUNTITEM_005 || ^^ || DISCOUNTITEM_006 || ^^ || DISCOUNTITEM_007 || ^^ || DISCOUNTITEM_008 || ^^ || DISCOUNTITEM_009 || ^^ || DISCOUNTQTY_001 || ^^ || DISCOUNTQTY_002 || ^^ || DISCOUNTQTY_003 || ^^ || DISCOUNTQTY_004 || ^^ || DISCOUNTQTY_005 || ^^ || DISCOUNTQTY_006 || ^^ || DISCOUNTQTY_007 || ^^ || DISCOUNTQTY_008 | | ^^ || DISCOUNTQTY_009 || ^^ || DISCOUNTPRICE_001 || ^^ || DISCOUNTPRICE_002 || ^^ || DISCOUNTPRICE_003 || ^^ || DISCOUNTPRICE_004 || ^^ || DISCOUNTPRICE_005 || ^^ || DISCOUNTPRICE_006 || ^^ || DISCOUNTPRICE_007 || ^^ || DISCOUNTPRICE_008 || ^^ || DISCOUNTPRICE_009 || ^^ || DISCOUNTDOL_001 || ^^ || DISCOUNTDOL_002 || ^^ || DISCOUNTDOL_003 || ^^ || DISCOUNTDOL_004 || ^^ || DISCOUNTDOL_005 || ^^ || DISCOUNTDOL_006 || ^^ || DISCOUNTDOL_007 | | ^^ || DISCOUNTDOL_008 || ^^ || DISCOUNTDOL_009 || ^^ || ITEMQUANTITY_001 || ^^ || ITEMQUANTITY_002 || ^^ || ITEMQUANTITY_003 || ^^ || ITEMQUANTITY_004 || ^^ || ITEMQUANTITY_005 || ^^ || ITEMQUANTITY_006 || ^^ || ITEMQUANTITY_007 || ^^ || ITEMQUANTITY_008 || ^^ || ITEMQUANTITY_009 || ^^ || DESC1 || ^^ || DISCOUNTUPSELL || ^^ || USERID || ^ ^ || ДАТА || ^^ || ВРЕМЯ || ^^ || СОСТОЯНИЕ || ^^ || ROWACTION || ^^ ||
0006 || ^^ || 3000 || ^^ || 999999999 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 2000 || ^^ || 2000 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 20% скидка $ 30 + ЗАКАЗАТЬ || ^^ || СОХРАНИТЬ 20% НА $ 30 + ЗАКАЗАТЬ || ^^ || LKWILHEL || ^^ || 20110214 || ^^ || 11141050 || ^ ^ ||% D || ^^ || I || ^^ ||
0023 || ^^ || 5000 || ^^ || 999999999 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 1500 || ^^ || 1500 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 15% СКИДКА $ 50 + ЗАКАЗ || ^^ || СОХРАНЕНИЕ 15% НА $ 50 + ЗАКАЗ || ^^ || LKWILHEL || ^^ || 20110214 || ^^ || 11013470 || ^ ^ ||% D || ^^ || I || ^^ || 0049 || ^^ || 4600 || ^^ || 999999999 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 3000 || ^^ || 3000 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 0 || ^^ || 30% скидка $ 46 + ЗАКАЗАТЬ || ^^ || СОХРАНИТЬ 30% НА $ 46 + ЗАКАЗАТЬ || ^^ || LKWILHEL || ^^ || 20110214 || ^^ || 11384810 || ^ ^ ||% D || ^^ || I || ^^ ||


Колонны

enter image description here

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Определите, что символ (ы) конца строки (EOL). Если конец строки равен \ r \ n (а вы указали только \ n), возможно, массовая вставка читает следующую строку и пытается обрезать то, что она считает ACTION_TYPE.

Используйте Notepad ++, чтобы узнать, что такое символ EOL. Нажмите Вид> Показать символ> Показать конец строки.

1 голос
/ 07 августа 2012

Попробуйте удалить столбец SLOTID, и это должно решить проблему. Предполагая, что SLOTID не существует как столбец в исходном файле.

...