Bulk Insert with Format file err... -
05-05-2004
, 07:41 PM
Hi,
I am trying to use the Bulk Insert command using format
file.
1.The CSV text file includes data which has numeric values
like 80.0, 1234.56, in addition to other text/char fields.
2. The columns in the destination table, where the data
needs to be "bulk inserted" are a) Float and b) Money
respectively.
Here's the problem.
1.I am unable to specify the correct data type in the
format file for these columns.
SQLFLT8 and SQLMONEY does not work, they insert a value
which looks like 4.2430214583435218E-315 and similar in
the other column.
2. Trying to get them all as varchar ends up in SQL server
error message and no rows in the table.
Here is some reference info.
SAMPLE DATA
===========
"03","0403","04","z1"," ","0A11111111 ","11111111
1","FNAME ","LNAME ","L","1110","ABCDE
", .00,
185.60
SAMPLE Table Creation Script
============================
CREATE TABLE [dbo].[PP1] (
[col1] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col2] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col3] [varchar] (250) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col4] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col5] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col6] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col7] [varchar] (250) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col8] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col9] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col10] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col11] [varchar] (250) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col12] [varchar] (255) COLLATE
SQL_Latin1_General_CP1_CI_AS NULL ,
[col13] [float] NULL ,
[col14] [float] NULL
) ON [PRIMARY]
GO
Sample FORMAT FILE
==================
8.0
14
1 SQLCHAR 0
2 "\",\"" 1 col1
SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0
4 "\",\"" 2 col2
SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0
2 "\",\"" 3 col3
SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0
2 "\",\"" 4 col4
SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0
9 "\",\"" 5 col5
SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 0
15 "\",\"" 6 col6
SQL_Latin1_General_CP1_CI_AS
7 SQLCHAR 0
9 "\",\"" 7 col7
SQL_Latin1_General_CP1_CI_AS
8 SQLCHAR 0
20 "\",\"" 8 col8
SQL_Latin1_General_CP1_CI_AS
9 SQLCHAR 0
20 "\",\"" 9 col9
SQL_Latin1_General_CP1_CI_AS
10 SQLCHAR 0
1 "\",\"" 10 col10
SQL_Latin1_General_CP1_CI_AS
11 SQLCHAR 0
4 "\",\"" 11 col11
SQL_Latin1_General_CP1_CI_AS
12 SQLCHAR 0
30 "\",\"" 12 col12
SQL_Latin1_General_CP1_CI_AS
13 SQLFLT8 0
13 "\"," 13 col13
SQL_Latin1_General_CP1_CI_AS
14 SQLFLT8 0
13 "\r\n" 14 col14
SQL_Latin1_General_CP1_CI_AS
SAMPLE Stored PROC using Bulk Insert command
============================================
CREATE Procedure dbo.TEST
AS
/*Truncate the table, Insert from PP..txt file.*/
Print 'Step 1. Truncate the table--performed'
TRUNCATE TABLE PP1
/*Print 'Step 2. Bulk Insert into FMISDownload from PRN
file performed'*/
BULK INSERT PP1 FROM 'c:\sample.txt'
WITH (FORMATFILE = 'c:\format.fmt', MAXERRORS=10000)
GO
Could someone please let me know what is missing or what
am I doing wrong?
Thanks,
Meet
.. |