批量插入类型不匹配T-SQL

时间:2013-06-15 15:34:50

标签: tsql sql-server-2012-express

使用此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),但我仍然得到同样的错误

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

从ROWTERMINATOR中删除逗号

您的BULK INSERT语句应如下所示:

BULK INSERT dbo.TS_FX
FROM 'c:\fxRates.csv'
WITH (
     FIELDTERMINATOR =','
    ,ROWTERMINATOR ='\n'
);