2011-09-22 14 views
13

estoy recibiendo este errorcarga a granel error de conversión de datos (truncamiento)

Bulk load data conversion error (truncation) for row 1, column 12 (is_download) 

aquí es el csv ... que sólo tiene una fila

30,Bill,Worthy,sales,,709888499,[email protected],,"Im a a people person., to work together for this new emerging env.HTTP://applesoftware.com","Bill and Son of Co","Contact Us: Contact Form",0 

aquí está mi declaración de inserción masiva .. .

SE SalesLogix 
GO 

CREATE TABLE CSVTemp 
(id INT, 
firstname VARCHAR(255), 
lastname VARCHAR(255), 
department VARCHAR(255), 
architecture VARCHAR(255), 
phone VARCHAR(255), 
email VARCHAR(255), 
download VARCHAR(255), 
comments VARCHAR(MAX), 
company VARCHAR(255), 
location VARCHAR(255), 
is_download VARCHAR(255) 
) 
GO 

BULK 
INSERT CSVTemp 
FROM 'c:\leads\leads.csv' 
WITH 
(
DATAFILETYPE = 'char', 
BATCHSIZE = 50, 
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 
GO 
--Check the content of the table. 
SELECT * 
FROM CSVTemp 
GO 

el problema es la mayoría de las veces funciona muy bien, pero en algunas situaciones (este es uno de ellos) me sale los errores

alguna idea sobre lo que está causando este registro para tener este error

Respuesta

12

Está recogiendo las comas en el campo de comentarios como delimitadores, porque los delimitadores no son consistentes. La mejor solución es asegurarse de que todos los campos estén envueltos con comillas dobles y establecer FIELDTERMINATOR en '","'. Alternativamente, reemplace las comas por algo que no esté en los comentarios (como ~) y configure FIELDTERMINATOR = '~'.

+0

gracias @wil que ayudaron mucho – Trace

6

Además de los comentarios de Wil, parece que está viendo las 12 columnas, por lo que puede ser que su terminador de filas sea incorrecto. En primer lugar, asegúrese de que el programa que reúne estos archivos esté de hecho colocando un retorno de carro al final de la última línea; Tuve que corregir muchos programas donde este no era el caso. Una vez que esté seguro de que hay un retorno de carro allí, es posible que deba experimentar para ver qué tipo de retorno de carro es. Algunas veces es solo char (10), algunas veces char (13), y algunas veces puede estar en el orden incorrecto. Así experimentar con:

ROWTERMINATOR = '\n' 
ROWTERMINATOR = '\r' 
ROWTERMINATOR = '\n\r' 
ROWTERMINATOR = '\r\n' 
+0

A menudo, si la ROWTERMINATOR es incorrecto o inconsistente puede hacer que se combinan las filas hasta que choca con el terminador reconocido o incluso EF. He tenido que pasar antes. – Wil

0

System.Data.SqlClient.SqlException (0x80131904): carga a granel error de conversión de datos (truncamiento) para la fila 97, columna 33

Para el error anterior, puede comprobar

  • tamaño tipo de datos de la columna (por ejemplo VARCHAR (255)) es si es suficiente para importar datos o no.
  • Y el terminador de fila p.
    • ROWTERMINATOR = '0x0A'
    • ROWTERMINATOR = '\ n'
    • ROWTERMINATOR = '\ r \ n'
  • FIELDTERMINATOR
    • Asegúrese de que el terminador de campo seleccionado no lo hace ocurrir con en datos. Si existe la posibilidad de que ocurra, reemplázalo con otro personaje, p. | en el archivo.
Cuestiones relacionadas