Für colid 6 wurde eine ungültige Spaltenlänge vom bcp-Client empfangen
Ich will Massen-upload von csv-Datei der Daten zum sql-server 2005 von c# - code, aber ich bin auf den unter Fehler -
Erhielt eine ungültige Spaltenlänge vom bcp-client für colid 6.
beim Massenkopieren schreiben, um Datenbank-server
InformationsquelleAutor der Frage Sana Sana | 2012-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer der Spalten Daten in excel (Spalten-Id 6) hat eine oder mehrere Zelle von Daten, die über das datacolumn-Datentyp-Länge in der Datenbank.
Überprüfen Sie die Daten in excel. Überprüfen Sie auch die Daten in der excel-für das format sein, in übereinstimmung mit der Datenbank-Tabelle schema.
Um dies zu vermeiden, versuchen Sie, ein überschreiten der Daten-Länge des string-Datentyp in der Datenbank-Tabelle.
Hoffe, das hilft.
InformationsquelleAutor der Antwort Dinesh
Ich weiß, dieser Beitrag ist alt, aber ich lief in das gleiche Problem und haben endlich herausgefunden, eine Lösung zu bestimmen, welche Spalte war das problem verursacht, und melden Sie zurück, wie gebraucht. Ich fand schließlich heraus, dass die colidder zurückgegeben wird, in der SqlException ist nicht null-basiert, so dass Sie brauchen, subtrahieren Sie 1 aus, um Sie zu erhalten die Wert. Nach, dass es verwendet wird, wie der index der _sortedColumnMappings ArrayList die SqlBulkCopy-Instanz nicht den index der Spalte Zuordnungen, die Hinzugefügt wurden, um die SqlBulkCopy-Instanz. Eine Sache zu beachten ist, dass SqlBulkCopy halt auf die erste Fehlermeldung erhalten, so darf dies nicht das einzige Problem, aber zumindest hilft, um es herauszufinden.
InformationsquelleAutor der Antwort b_stil
Stand ich vor einer ähnlichen Art von Problem, indem Sie einen string an Datenbank-Tabelle mithilfe von SQL BulkCopy. Die Zeichenfolge ich war vorbei, war der 3 Charaktere in der Erwägung, dass der Ziel-Spalte der Länge war
varchar(20)
. Ich habe versucht, trimmen Sie den string vor dem einfügen in die DB mitTrim()
Funktion, um zu überprüfen, ob das Problem wurde durch jedes Leerzeichen (führende und nachfolgende) in der Zeichenfolge. Nach dem trimmen der Zeichenfolge, es hat gut funktioniert.Können Sie versuchen
text.Trim()
InformationsquelleAutor der Antwort Liji Chandran
Überprüfen Sie die Größe der Spalten in der Tabelle, die Sie tun, bulk insert/copy. die varchar-oder anderen string-Spalten muss ggf. verlängert werden oder der Wert Ihrer einfügen Bedürfnisse zu trimmen. Die Reihenfolge der Spalten auch sollte derselbe sein wie in der Tabelle.
e.g Erhöhen Sie die Größe von varchar-Spalte 30 bis 50 =>
ALTER TABLE [dbo].[TableName]
ALTER COLUMN [Spaltenname] Varchar(50)
InformationsquelleAutor der Antwort Nalan Madheswaran