我正在尝试使用 -
在sql server中使用Bulk Insert加载数据BULK INSERT CUSTOMERE FROM 'F:\\TEMPP\\Invoice_1500645000008_24072017_1127.csv' WITH (FORMATFILE = 'F:\\TEMPP\\Invoice.fmt')
但是在这个文件中我只有Header(表示0记录)然后它下面给出了错误: Msg 4832,Level 16,State 1,Line 86 批量加载:数据文件中遇到意外的文件结尾。 消息7399,第16级,状态1,第86行 OLE DB提供程序" BULK"对于链接服务器"(null)"报告错误。提供商未提供有关错误的任何信息。 Msg 7330,Level 16,State 2,Line 86 无法从OLE DB提供程序中获取行" BULK"对于链接服务器"(null)"。
每当我加载数据加载时......
我们可以处理0条记录文件而不会出错。??
由于
答案 0 :(得分:1)
你可以将BULK INSERT放在TRY..CATCH中,但是你必须将它作为动态查询运行,否则TRY..CATCH不会捕获错误。这使您可以选择记录有关空文件的信息。
BEGIN TRY
DECLARE @cmd varchar(1000)
SET @cmd = 'BULK INSERT CUSTOMERE FROM ''F:\TEMPP\Invoice_1500645000008_24072017_1127.csv'' WITH (FORMATFILE = ''F:\TEMPP\Invoice.fmt'')
EXECUTE (@cmd)
END TRY
BEGIN CATCH
END CATCH
答案 1 :(得分:0)
BULK INSERT CUSTOMERE
FROM 'F:\TEMPP\Invoice_1500645000008_24072017_1127.csv'
WITH
(
FORMATFILE = 'F:\TEMPP\Invoice.fmt'
);