第1行,第1列(日期)错误的批量加载数据转换错误(截断)

时间:2015-07-08 02:36:04

标签: sql-server excel-2010 bulkinsert temp-tables

我有一个excel文件,我希望bulk insert进入temp表:

create table #tmptable
(
    Date varchar(10),
    Receipt varchar(50),
    Description varchar(100),
    [Card Member] varchar(50),
    [Account #] varchar(17),    
    Amount varchar(20)
)

bulk insert #tmptable
from 'C:\Transactions\example.xls'
with (FieldTerminator='\t', RowTerminator = '\n')
go

这是我的excel文件:

enter image description here

执行bulk语句时,出现以下错误:

  

Msg 4863,Level 16,State 1,Line 1批量加载数据转换错误   (截断)第1行第1列(日期)。 Msg 4864,Level 16,State 1,   第1行批量加载数据转换错误(类型不匹配或无效   第2行第1列(日期)的指定代码页的字符。

不知道为什么会这样。

1 个答案:

答案 0 :(得分:1)

好吧,你实际上正在阅读你的标题,这意味着xls前几行的数据是图像,这就是你得到类型不匹配错误的原因

enter image description here

获取数据实际所在的第一行的行号。

然后你用这个:

create table #tmptable
(
    Date date,
    Receipt varchar(50),
    Description varchar(100),
    [Card Member] varchar(50),
    [Account #] varchar(17),    
    Amount varchar(20)
)

bulk insert #tmptable
from 'C:\Transactions\example.xls'
with (FieldTerminator='\t', RowTerminator = '\n', FirstRow = X)
go

其中X是数据实际开始的行号,而不是标题