Ошибка преобразования данных массовой загрузки (усечение) — SQL Server

Я импортирую данные из файла CSV, используя следующую процедуру:

CREATE TABLE #HSCodeHeading (
[ItemID] [int] IDENTITY(1,1) NOT NULL,
[CMSChapterID] [bigint] NOT NULL,
[HeadingCode] [varchar](2) NOT NULL,
[HeadingDescription] [nvarchar](1125) NOT NULL,
[HeadingDescriptionPT] [nvarchar](1125) NOT NULL,   
PRIMARY KEY CLUSTERED 
(
    [ItemID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,     ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

-- Inserting all the from csv to temproary table using BULK INSERT
EXEC ('BULK INSERT #HSCodeHeading
FROM ''' + @FilePath + '''
WITH ( FIELDTERMINATOR = ''<,>'', ROWTERMINATOR =''\n'', FIRSTROW = 2, KEEPIDENTITY, CODEPAGE = ''ACP'' );');

Почти все строки (1227 строк/1229 строк) успешно импортируются, однако 2 строки ниже вызывают следующую ошибку:

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

Вот ряды:

Ряд №1

602‹,>97‹,>18‹,>4818‹,>Papel dos tipos utilizados para papel de toucador e para papeis semelhantes, pasta (Ouate) de celulose ou mantas de fibras de celulose, dos tipos utilizados para fins domésticos ou sanitários, em rolos, de largura não Superior a 36 cm, ou cortados em forma proprias, lenços incluindo os de maquilhagem, toalhas de mão, toalhas de mesa, guardanapos, fraldas para bebés, pensos e tampões semelenos higiénicos, , para usos domésticos, de toucador, higiénicos ou Hospitalares, vestuário e seus acessórios, de pasta de papel, papel, pasta (Ouate) de celulose ou de mantas de fibras de celulose‹,> Papel dos tipos utilizados para papel de toucador e para papeis semelhantes, pasta (Ouate) de celulose ou mantas de fibras de celulose, dos tipos utilizados para fins domésticos ou sanitários, em rolos, de largura não Superior a 36 cm, ou cortados em forma próprias, lenços incluindo os de maquilhagem, toalhagem Мао, Тоалхас-де-Меса, Гуарданап os, fraldas para bebes, pensos e tampões higiénicos, lençóis e artigos semelhantes, para usos domésticos, de toucador, higiénicos ou Hospitalares, vestuário e seus acessórios, de pasta de papel, papel, pasta (Ouate) de celulose ou de mantas de fibras целлюлоза

Ряд № 2

545‹,>91‹,>02‹,>4202‹,>Arcas para viagem, malas e maletas, os estojos para óculos, binóculos, máquinas fotográficas e de filmar, toolsos musicais, armas, e artefactos semelhantes, sacos de viagem, sacos isolantes para géneros alimentícios e bebidas, bolsas de toucador, mochilas, bolsas, sacos para compras (sacolas), carteiras, portamoedas, portacartões, cigarreiras, tabaqueiras, estojos para ferramentas, bolsas e sacos para artigos de desporto, estojos para frascos ou para jóias, caixas para pó de arroz, estojos para ourivesaria e artefactos semelhantes, de couro natural ou reconstituído, de folhas de plastico, de materias têxteis, de fibra vulcanizada ou de carão, ou recobertos, no todo o na maior parte, dessas mesmas materias ou de papel‹,>Arcas para viagem, malas e maletas, os estojos para óculos, binóculos, máquinas fotográficas e de filmar, инструменты musicais, armas, e artefactos semelhantes, sacos de viagem, sacos isolantes para generos alimentícios e bebid as, bolsas de toucador, mochilas, bolsas, sacos para compras (sacolas), carteiras, portamoedas, portacartões, cigarreiras, tabaqueiras, estojos para ferramentas, bolsas e sacos para artigos de desporto, estojos para frascos ou para jóias, caixas para pó de arroz, estojos para ourivesaria e artefactos semelhantes, de couro natural ou reconstituído, de folhas de plastico, de materias têxteis, de fibra vulcanizada ou de carão, ou recobertos, no todo o na maior parte, dessas mesmas materias ou de papel

Я не могу обнаружить ошибку, так как оба [HeadingDescription], [HeadingDescriptionPT] имеют одинаковое содержание.

Любая изюминка в этом направлении будет приветствоваться. Я перепроверил другие вопросы SO (7520731, 13259028)

Спасибо


person Raymond A    schedule 29.11.2012    source источник


Ответы (1)


Что ж, ошибка очевидна: данные, которые вы пытаетесь вставить в столбец HeadingDescriptionPT, слишком длинные.

Этот столбец определяется как [nvarchar](1125) -

Но два текстовых блока имеют длину 1222 (#602) и 1470 символов (#545)...

person marc_s    schedule 29.11.2012
comment
Спасибо, за разъяснения. Однако как (методами) вы пришли к этому числу? потому что различные инструменты, используемые для подсчета символов, нашли 624 (# 602) и 748 (# 545). - person Raymond A; 29.11.2012
comment
@Raymond: просто скопируйте и вставьте в текстовый редактор и посмотрите, сколько символов в этих текстовых блоках.... попробовал с TextPad, Notepad2, Geany — все возвращают одну и ту же информацию - person marc_s; 29.11.2012
comment
Спасибо, за комментарий вы правы. Предполагалось, что CSV будет иметь только 5 столбцов, разделенных ‹,› в качестве разделителя столбцов, но оказалось, что он имеет 6 столбцов, поэтому последние 2 столбца (HeadingDescription, HeadingDescriptionPT) были объединены в один (HeadingDescriptionPT). Создание там по ошибке. Спасибо за вашу помощь. - person Raymond A; 29.11.2012