2015-09-24 1 views
0

Я пытаюсь импортировать некоторые данные с популярного сайта GeoNames в SQL Server. Это текстовый файл с разделителями табуляции. Я не думал, что будет проблема, но что бы я ни делал, я просто получаю сообщение об ошибке, которое говорит:Как я могу загрузить этот файл в SQL Server 2012?

Ошибка загрузки навалом. Столбец слишком длинный в файле данных для строки 1, столбец 4. Убедитесь, что терминатор поля и ограничитель строки указаны правильно.

Это файл, я пытаюсь импортировать: http://download.geonames.org/export/dump/admin2Codes.txt

... и это мой стол:

CREATE TABLE [Admin2Codes](
    [code] [VARCHAR](20) NOT NULL, 
    [name] [NVARCHAR](200) NOT NULL, 
    [asciiname] [NVARCHAR](200) NOT NULL, 
    [geonameId] [INT] NOT NULL 
) 

Я не могу определить, что проблема есть. Он работает, если у меня есть только одна строка в файле, но, как только будет несколько строк, она терпит неудачу. Линейные концовок в файле, как представляется, \ N и что соответствует моему SQL:

BULK INSERT dbo.Admin2Codes FROM 'D:\admin2codes.txt' 
WITH( 
    DATAFILETYPE = 'widechar', 
    FIELDTERMINATOR = '\t', 
    ROWTERMINATOR = '\n' 
) 
GO 
+0

Вы уже конвертировали admin2Codes.txt из UTF-8 в UTF-16? –

ответ

0

Похоже данных использует новую строку в качестве строки терминатор, который используется в UNIX вместо возврата каретки и линии подачи используется в окнах. Попробуйте это вместо:

ROWTERMINATOR = '''+CHAR(10)+'''