SqlBulkCopy Ausnahme, finde das Colid

sql sqlbulkcopy

Frage

Verwenden von SqlBulkCopy und Abrufen dieser Ausnahme:

Es wurde eine ungültige Spaltenlänge vom bcp-Client für die Spalte 30 empfangen.

Ich habe stundenlang mit dem Kopf gegen diesen geklopft. Ich weiß, welche Zeile das Problem hat, aber ich weiß nicht, welche Spalte "Colid 30" ist. In der Datentabelle gibt es 178 Spalten. Alle Werte scheinen korrekt zu sein, und ich sehe keine, die länger sind als irgendwelche Spaltendatentypen in meiner Datenbank.

Diese Datenbank enthält Immobilienlisten und verfügt derzeit über 3 Millionen Datensätze, die alle gut sind.

Gibt es eine Möglichkeit, herauszufinden, was Colid 30 ist? Oder gibt es eine Möglichkeit, die tatsächliche SQL anzuzeigen, die der BCP an die Datenbank übermittelt?

Akzeptierte Antwort

Ich hoffe, dass dies hilft, die Probleme anderer zu lösen.

Der Fehler war, weil eines der Felder string / varchar in der Datentabelle ein Semikolon ";" hatte. in seinem Wert. Anscheinend müssen Sie diese manuell entgehen, bevor Sie den Einsatz machen!

Ich machte eine Schleife durch alle Zeilen / Spalten und tat:

string.Replace(";", "CHAR(59)");

Danach hat alles reibungslos eingefügt.


Beliebte Antwort

Überprüfen Sie die Größe der Spalten in der Tabelle, die Sie in Massen einfügen. Die Spalten varchar oder andere Zeichenfolgen müssen möglicherweise erweitert werden.

zB Größe 30 bis 50 erhöhen =>

ALTER TABLE [dbo].[TableName]
ALTER COLUMN [ColumnName] Varchar(50)


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum