webentwicklung-frage-antwort-db.com.de

Fehler beim Konvertieren von Massenladedaten (Verkürzung)

Ich bekomme diesen Fehler 

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

hier ist die csv ... es hat nur eine reihe

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

hier ist mein Bulk Insert Statement ...

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

Das Problem ist meistens großartig, aber in einigen Situationen (dies ist eine davon) bekomme ich die Fehler

Jegliche Ideen dazu, was diesen Fehler verursacht

15
Matt Elhotiby

Die Kommas werden innerhalb des Kommentarfeldes als Trennzeichen verwendet, da die Trennzeichen nicht konsistent sind. Die beste Lösung besteht darin, sicherzustellen, dass alle Felder in doppelte Anführungszeichen gesetzt werden und FIELDTERMINATOR auf '","' gesetzt wird. Ersetzen Sie alternativ die Kommas durch etwas, das sich wahrscheinlich nicht in den Kommentaren befindet (wie ~), und legen Sie FIELDTERMINATOR = '~' fest.

13
Wil

Neben den Kommentaren von Wil werden anscheinend alle 12 Spalten angezeigt. Es kann also sein, dass Ihr Rowterminator falsch ist. Stellen Sie zunächst sicher, dass das Programm, das diese Dateien zusammenstellt, tatsächlich einen Zeilenumbruch am Ende der letzten Zeile enthält. Ich musste viele Programme korrigieren, wo dies nicht der Fall war. Wenn Sie sich sicher sind, dass sich dort ein Wagenrücklauf befindet, müssen Sie möglicherweise ausprobieren, um welche Art von Wagenrücklauf es sich handelt. Manchmal handelt es sich nur um Zeichen (10), manchmal nur um Zeichen (13), und manchmal kann es beides geben, aber in der falschen Reihenfolge. Also experimentiere mit:

ROWTERMINATOR = '\n'
ROWTERMINATOR = '\r'
ROWTERMINATOR = '\n\r'
ROWTERMINATOR = '\r\n'
8
Aaron Bertrand

System.Data.SqlClient.SqlException (0x80131904): Massenladedatenkonvertierungsfehler (Abschneiden) für Zeile 97, Spalte 33

Für den obigen Fehler können Sie überprüfen

  • Datentypgröße der Spalte (z. B. VARCHAR (255)) ist, wenn es ausreicht, Daten zu importieren oder nicht.
  • UND der Reihenabschluss z.
    • ROWTERMINATOR = '0x0A'
    • ROWTERMINATOR = '\ n'
    • ROWTERMINATOR = '\ r\n'
  • FIELDTERMINATOR
    • Stellen Sie sicher, dass der ausgewählte Feldabschluss nicht mit in data auftritt. Wenn eine Chance besteht, ersetzen Sie sie durch ein anderes Zeichen, z. | in der Datei.
0
itsrizi