Формат файла BCP для массовой вставки SQL файла CSV

Я пытаюсь выполнить массовую вставку CSV-файла в таблицу SQL с помощью BCP, но не могу исправить эту ошибку: «Слишком длинный столбец в файле данных для строки 1, столбца 2. Убедитесь, что разделитель полей и разделитель строк указаны правильно». - Может ли кто-нибудь помочь, пожалуйста?

Вот мой код SQL:

BULK INSERT UKPostCodeStaging
FROM 'C:\Users\user\Desktop\Data\TestFileOf2Records.csv'
WITH (
DATAFILETYPE='char',
FIRSTROW = 1,
FORMATFILE = 'C:\Users\User\UKPostCodeStaging.fmt');

Вот мои тестовые данные, содержащиеся в TestFileOf2Records.csv:

"HS1 2AA",10,14,93,"S923","","S814","","S1213","S132605"
"HS1 2AD",10,14,93,"S923","","S814","","S1213","S132605"

И вот мой файл BCP, который я попытался отредактировать соответствующим образом:

10.0
11
1   SQLCHAR  0  0  "\""      0  FIRST_QUOTE                 SQL_Latin1_General_CP1_CI_AS
2   SQLCHAR  8  0  "\","     1  PostCode                    SQL_Latin1_General_CP1_CI_AS
3   SQLINT   1  0  ","       2  PositionalQualityIndicator  ""
4   SQLINT   1  0  ","       3  MetresEastOfOrigin          ""
5   SQLINT   1  0  ",\""     4  MetresNorthOfOrigin         ""
6   SQLCHAR  8  0  "\",\""   5  CountryCode                 SQL_Latin1_General_CP1_CI_AS
7   SQLCHAR  8  0  "\",\""   6  NHSRegionalHACode           SQL_Latin1_General_CP1_CI_AS
8   SQLCHAR  8  0  "\",\""   7  NHSHACode                   SQL_Latin1_General_CP1_CI_AS
9   SQLCHAR  8  0  "\",\""   8  AdminCountyCode             SQL_Latin1_General_CP1_CI_AS
10  SQLCHAR  8  0  "\",\""   9  AdminDistrictCode           SQL_Latin1_General_CP1_CI_AS
11  SQLCHAR  8  0  "\"\r\n"  10 AdminWardCode               SQL_Latin1_General_CP1_CI_AS

Есть идеи, где я ошибаюсь? Благодарность


person JohnB121    schedule 30.08.2012    source источник
comment
квалификатор кавычек делает массовую вставку адской работой таким образом. Загрузите данные, используя , в качестве терминатора поля (в этом случае вам не нужно использовать файл форматирования), а затем используйте функцию replace (), чтобы удалить кавычки из данных.   -  person ClearLogic    schedule 30.08.2012
comment
Спасибо - я сделал это, чтобы загрузить данные на этот раз. Однако было бы хорошо знать, как правильно получить файл BCP, поскольку я не хочу применять ручное исправление каждый раз, когда данные обновляются.   -  person JohnB121    schedule 31.08.2012