【发布时间】:2013-06-15 15:34:50
【问题描述】:
我正在使用此 BULK INSERT 命令在 SQL Server 2012 Express 中插入 csv 文件。
BULK INSERT dbo.TS_FX
FROM 'c:\fxRates.csv'
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR =',\n'
);
fxRatesCSV 文件的第一行如下所示:
101,20130430,20130531,1.5307
我得到的错误是:
第 1 行第 4 列 (FX_RATE) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。
我的表 (dbo.TS_FX) 有 4 列,定义如下
CURRENCY_ID (Numeric(3,0), null)
BEGIN_DATE (date, null)
END_DATE (date, null)
FX_RATE (float, null)
显然错误是我定义FX_RATE 列的方式,我尝试了各种其他类型(Decimal, Numeric)但我仍然得到同样的错误
非常感谢任何帮助。
谢谢
【问题讨论】:
-
无法重现 - 对我来说效果很好(SQL Server 2012 Developer)。我自己不会使用
float- 这不准确 - 使用decimal(10,4)或类似的东西
标签: tsql sql-server-2012-express