Solved

BUL:K INSERT OF UNICODE FILE

Posted on 2002-04-30
6
368 Views
Last Modified: 2008-02-01

I am trying to use BULK INSERT to populate a table in a SQL Server 2000 database from a unicode file.  I am using the following:

BULK INSERT tblTable FROM 'E:\File.txt'
 WITH (
     CHECK_CONSTRAINTS,
     DATAFILETYPE = 'widechar',
     FIELDTERMINATOR = '\0',
     FIRSTROW = 2,
     KEEPIDENTITY,  
     MAXERRORS = 0,  
     ROWTERMINATOR = '\0\n',
     TABLOCK )

but I'm getting an error - "Bulk insert data conversion error (truncation) for row 2, column 1 (fkColumnName)."

The same paramaters (except DATAFILETYPE) for BULK INSERT work fine when the file is ASCII. I have tried \0\0 for FIELDTERMINATOR and \0\0\n for ROWTERMINATOR but this doesn't work.

Anybody any ideas?

0
Comment
Question by:DJWalker
  • 3
  • 3
6 Comments
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 6980661
I think that the codepage option might help.

CODEPAGE [ = 'ACP' | 'OEM' | 'RAW' | 'code_page' ]

Specifies the code page of the data in the data file. CODEPAGE is relevant only if the data contains char, varchar, or text columns with character values greater than 127 or less than 32.

CODEPAGE value Description
ACP Columns of char, varchar, or text data type are converted from the ANSI/Microsoft Windows® code page (ISO 1252) to the SQL Server code page.
OEM (default) Columns of char, varchar, or text data type are converted from the system OEM code page to the SQL Server code page.
RAW No conversion from one code page to another occurs; this is the fastest option.
code_page Specific code page number, for example, 850

Now, if the column in the table is shorter than the data to be inserted, this would explain the "truncation" error...
As the row/columns are indicated, I would look at the file to see which are the differences to the previous rows...

CHeers


0
 

Author Comment

by:DJWalker
ID: 6980781

Thanks for a quick reply.

I have tried your suggestion, but it makes no difference.

One of my tables does have a char column in it, but apart from the NULL terminator, there are no characters in the file greater than 127 or less than 32.

The row and column are the first row and the first column being inserted, the column being a single digit in one case.

The unicode and ASCII data are both the same, ie ASCII and unicode versions of the same file so I think the data itself should be OK.




0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 6980813
could you either post the first lines of the file here, or send it to me?

What i suspect is that the value in the file is longer than what is defined in the database...

CHeers
0
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 

Author Comment

by:DJWalker
ID: 6982850
I'll send the file by e-mail.

Thanks.
0
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 300 total points
ID: 6985218
First, i can confirm that i get also the problems with your files...
BUT if I use BCP:
bcp testdatabase.dbo.tbltable in c:\tblTable_uni.txt -F2 -w -t\0 -r\0\n -Usa -P
Everything is fine and dandy...

If nothing else works, I can only suggest to use that...

You might try to use the FORMATFILE option, using the parameters of bcp above into a file...

CHeers
0
 

Author Comment

by:DJWalker
ID: 6985461

Thanks for your help.
0

Featured Post

Back Up Your Microsoft Windows Server®

Back up all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Question has a verified solution.

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

Nowadays, some of developer are too much worried about data. Who is using data, who is updating it etc. etc. Because, data is more costlier in term of money and information. So security of data is focusing concern in days. Lets' understand the Au…
Why is this different from all of the other step by step guides?  Because I make a living as a DBA and not as a writer and I lived through this experience. Defining the name: When I talk to people they say different names on this subject stuff l…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.

685 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