我有一个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文件:
执行bulk
语句时,出现以下错误:
Msg 4863,Level 16,State 1,Line 1批量加载数据转换错误 (截断)第1行第1列(日期)。 Msg 4864,Level 16,State 1, 第1行批量加载数据转换错误(类型不匹配或无效 第2行第1列(日期)的指定代码页的字符。
不知道为什么会这样。
答案 0 :(得分:1)
好吧,你实际上正在阅读你的标题,这意味着xls前几行的数据是图像,这就是你得到类型不匹配错误的原因
获取数据实际所在的第一行的行号。
然后你用这个:
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是数据实际开始的行号,而不是标题