【发布时间】:2015-09-24 14:24:08
【问题描述】:
我正在尝试将一些数据从流行的 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
【问题讨论】:
-
您是否已经将 admin2Codes.txt 从 UTF-8 转换为 UTF-16 ?
标签: sql-server bulkinsert geonames