Can anyone help please, I am using bulk insert for the first time.
 The statement I am running is:
 BULK INSERT Titles
 FROM 'c:\Titles.txt'
 WITH (FIRSTROW = 3,
 FIELDTERMINATOR = '\t',
 ROWTERMINATOR = '\n',
 KEEPNULLS,
 FORMATFILE = 'c:\Titles.fmt')
 Titles.txt contains tab delimited data like:
 ID Description StartDate ExpiryDate ParentItemID
 -- --
 -- -- --
 440 Doctor 1 Jan 1997 0:00 NULL NULL
 441 Mr 1 Jan 1990 0:00 NULL 1
 If I run the bulk insert statement I get the message:
 Server: Msg 4864, Level 16, State 1, Line 1
 Bulk insert data conversion error (type mismatch) for row 3, column 4
 (ExpiryDate)
 In the file Titles.txt, if I find and replace NULL with nothing and
 then execute the statement the data inserts into the Titles table.
 I need to be able to insert without having to do find and replace as I
 have hundreds of files to bulk insert.
 The format file Titles.fmt looks like this:
 8.0
 5
 1 SQLCHAR 0 12 "\t" 1
 ID ""
 2 SQLCHAR 0 100 "\t" 2
 Description Latin1_General_CI_AS
 3 SQLCHAR 0 24 "\t" 3
 StartDate ""
 4 SQLCHAR 0 24 "\t" 4
 ExpiryDate ""
 5 SQLCHAR 0 12 "\t" 5
 ParentItemID ""If this is not a one time deal, you'd be better off making sure that when
these files are generated, the value for column ExpireDate that is null does
not contain a string NULL.
With the existing data files, personally, I'd write a little utility to
find/replace all the 'NULL' string in the ExpireDate column with an empty
string. This can be esily done with any tool that supports regular
expressions.
Linchi
"rai_sk@.hotmail.com" wrote:
> Can anyone help please, I am using bulk insert for the first time.
> The statement I am running is:
> BULK INSERT Titles
> FROM 'c:\Titles.txt'
> WITH (FIRSTROW = 3,
> FIELDTERMINATOR = '\t',
> ROWTERMINATOR = '\n',
> KEEPNULLS,
> FORMATFILE = 'c:\Titles.fmt')
> Titles.txt contains tab delimited data like:
> ID Description StartDate ExpiryDate ParentItemID
> -- --
> -- -- --
> 440 Doctor 1 Jan 1997 0:00 NULL NULL
> 441 Mr 1 Jan 1990 0:00 NULL 1
> If I run the bulk insert statement I get the message:
> Server: Msg 4864, Level 16, State 1, Line 1
> Bulk insert data conversion error (type mismatch) for row 3, column 4
> (ExpiryDate)
> In the file Titles.txt, if I find and replace NULL with nothing and
> then execute the statement the data inserts into the Titles table.
> I need to be able to insert without having to do find and replace as I
> have hundreds of files to bulk insert.
> The format file Titles.fmt looks like this:
> 8.0
> 5
> 1 SQLCHAR 0 12 "\t" 1
> ID ""
> 2 SQLCHAR 0 100 "\t" 2
> Description Latin1_General_CI_AS
> 3 SQLCHAR 0 24 "\t" 3
> StartDate ""
> 4 SQLCHAR 0 24 "\t" 4
> ExpiryDate ""
> 5 SQLCHAR 0 12 "\t" 5
> ParentItemID ""
>
Saturday, February 25, 2012
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment