См. Этот небольшой образец моего CSV-файла:
"ID","TRANSACTION_TIME","CONTAINER_NUMBER","EVENT"
33115541,"2019-04-03 00:47:41.000000","MSKU1128096",
33115538,"2019-04-03 01:34:49.000000","MSKU1128096","Gate Out"
33115545,"2019-04-03 00:47:55.000000","MSKU4717839",
Это файл формата, который я создал
14.0
4
1 SQLCHAR 0 0 ",\"" 2 ID ""
2 SQLCHAR 0 0 "\",\"" 3 TRANSACTION_TIME ""
3 SQLCHAR 0 0 "\",\"" 4 CONTAINER_NUMBER ""
4 SQLCHAR 0 0 "\"\r\n" 5 EVENT SQL_Latin1_General_CP1_CI_AS
Проблема в том, что 4-й столбец может иметь нулевые значения, как вы можете видеть из строк 1 и 3 (исключая заголовок)
Смотрите ниже мою команду BULK INSERT
bulk insert dbo.DRISPIN_CONTAINER_HISTORY_STG1
from 'e:\dri_container_history_initial.csv'
with (
firstrow = 2,
formatfile = 'e:\container_history_initial.fmt'
)
Когда я запускаю это, я получаю следующую ошибку:
Сообщение 8152, Уровень 16, Состояние 13, Строка 305
Строка или двоичные данные будут проигнорированы.
Я также пытался указать длину префикса 2, но получил несколько разных ошибок.
Я знаю, что, возможно, смогу перенести значения с квалификаторами в промежуточную таблицу и затем удалить их. Но в идеале я хотел бы посмотреть, есть ли способ сделать это с помощью BULK INSERT или BCP
Заранее спасибо