我正在尝试将流行的GeoNames网站中的一些数据导入SQL Server。它是制表符分隔的文本文件。我不认为会有问题,但无论我做什么,我只是收到一条错误信息:
批量加载失败。第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 :(得分:0)
看起来数据使用换行符作为UNIX中使用的行终止符,而不是Windows中使用的回车符和换行符。试试这个:
ROWTERMINATOR = '''+CHAR(10)+'''