Solved

MS SQL Bulk Insert problem

Posted on 2011-02-16
5
377 Views
Last Modified: 2012-08-13
Hi All

Time to page the FOAK once again.

I'm having trouble with a bulk insert statement - hope someone can help me out here!

The sql is as follows:-

BULK INSERT  dbo.gbinfo FROM  'I:/pages/gb/pass/monthly.txt' WITH(FIELDTERMINATOR = '|',ROWTERMINATOR = '\n')

I have some 750k rows all looking like:-

1|2002-12-01|12|2.71|0.00|271.00|C010002|OXF|Central|1
3|2002-12-01|12|30.51|0.00|3051.00|C010005|*N|*N|1
4|2002-12-01|12|1.67|0.00|167.00|C010007|UN |Scotland|1
5|2002-12-01|12|7.09|0.00|709.00|C010008|OXF|Central|1

and so on

Until I can get an import I've set all the columns in the table to nvarchar and there is no index column.

It's chucking up this error:-

Auto-attach to process '[2340] [SQL] GRANTB' on machine 'GRANTB' succeeded.
The thread 'GRANTB\SQLEXPRESS [53]' (0x17a8) has exited with code 0 (0x0).
The thread 'GRANTB\SQLEXPRESS [53]' (0x17a8) has exited with code 0 (0x0).
The program '[2340] [SQL] GRANTB: GRANTB\SQLEXPRESS' has exited with code 0 (0x0).

Many thanks in advance!

Best regards

Grant
0
Comment
Question by:Buzby58
  • 2
  • 2
5 Comments
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 34910632
could it be that your 750K rows result in 2G (sql express 2000/2005) or 4GB (sql express 2008) of data?
that would explain it, eventually ...
0
 

Author Comment

by:Buzby58
ID: 34910756
Thanks for uber prompt response!

Sorry I'm newsish to MS SQL

The txt file is 28mb and am using SQL express 2008 - load works like a dream in MySql but that options not open to me!

I've just discovered this:-

Msg 4866, Level 16, State 1, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 10. Verify that the field terminator and row terminator are specified correctly.
Msg 7399, Level 16, State 1, Line 1
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 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

Not sure about the field terminator and there's no nulls in there as far as can see - nulls are allowed in the receiving table.

Thanks

Grant

0
 
LVL 12

Expert Comment

by:Paul_Harris_Fusion
ID: 34915634
Since the error is that the last value in the first row is too long, my guess is that the row terminator is at fault and the import has interpreted the entire remainded of the file as the contents of row1, column 10.

0
 
LVL 12

Expert Comment

by:Paul_Harris_Fusion
ID: 34915668
Try
ROWTERMINATOR = '/r'

More Info on row terminators here:

http://msdn.microsoft.com/en-us/library/ms191485.aspx
0
 

Author Comment

by:Buzby58
ID: 34916528
Tried a good combination of row terminators - still no go - just can't see why it won't work :-/
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
I have a large data set and a SSIS package. How can I load this file in multi threading?
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question