错误将文件导入到SQL Server

错误将文件导入到SQL Server

问题描述:

当我试图导入使用SQL Server 2008:错误将文件导入到SQL Server

DECLARE @row_terminator CHAR; 
SET @row_terminator = CHAR(10); -- or char(10) 


DECLARE @stmt NVARCHAR(2000); 


SET @stmt = ' 
    BULK INSERT accn_ordered_tests 
    FROM ''e:\fullextract\accn_ordered_tests_201201270801.txt'' 
    WITH 
     (
     firstrow=2, 
FIELDTERMINATOR = ''|'' , 
ROWS_PER_BATCH=10000 

    ,ROWTERMINATOR='''[email protected]_terminator+''' 
    )' 
exec sp_executesql @stmt; 

这种说法已经为数百个表的惊人工作。

我遇到了一个表的问题。这里的数据样本:

DD68|OXY-2|Oxycodone Panel|N||83925|FEE|TRICORTH|INC|||||1|N|N|||1|25.94|68.45|68.45|0|||N|48035|N||0|04/05/2011|N||69872|7739|12/13/2011 10:12:29|04/07/2011||0|0|||||0 
D088|PCP-2|Phencyclidine panel|N||83992|FEE|TRIORTH|IWC|||||1|N|N|||1|19.6|51.7|51.7|0|||N|41636|N||0|04/05/2011|N||69873|7740|12/13/2011 10:12:29|04/07/2011||0|0|||||0 
D858|PPX-2|Propoxyphene panel|N||83925|FEE|TRIORTH|IWC|||||1|N|N|||1|25.94|68.45|68.45|0|||N|41037|N||0|04/05/2011|N||69874|7741|12/13/2011 10:12:29|04/07/2011||0|0|||||0 
DD68|TAP-2|Tapentadol panel 80299|N||80299|FEE|TRICATH|INC|||||1|N|N|||1|1|48.18|48.18|0|||N|48038|N||0|04/05/2011|N||69875|7745|12/13/2011 10:12:29|04/07/2011||0|0|||||0 

我收到此错误:

Msg 4866, Level 16, State 1, Line 2 
The bulk load failed. The column is too long in the data file for row 72294, column 36. Verify that the field terminator and row terminator are specified correctly. 
Msg 7399, Level 16, State 1, Line 2 
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error. 
Msg 7330, Level 16, State 2, Line 2 
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)". 

有谁知道我在做什么错?

这里是有问题的行:

D858|PCP-2|Phencyclidine panel|N||83992|FEE|TRICARRTH|INC|||||1|N|N|||1|19.6|51.7|51.7|0|||N|4168036|N||0|04/05/2011|N||69873|7740|12/13/2011 10:12:29|04/07/2011||0|0|||||0 

当我试图做的导入数据向导我得到了这些错误:

overflowed the disk I/O buffer for column audit_date 
+0

很有可能是一个损坏的文件。你可以在请求之前和之后显示几行。 – Ben 2012-01-30 23:29:58

+2

你能告诉我们你的餐桌定义吗? – Lamak 2012-01-31 02:32:25

可能是你有一个坏的文件。请供应商重新发送。