Lassen Sie mich zunächst klarstellen, dass dies weder eine doppelte noch eine mögliche doppelte Frage ist. Ich habe versucht, jede Antwort auf jede einzelne Variante dieses Problems in StackOverflow und DBA Stack Exchange ohne Glück zu implementieren.
Ich habe in den letzten zwei Tagen mit diesem Problem zu kämpfen (ich arbeite ungefähr 7 Stunden am Tag daran), und selbst nachdem ich das Problem gegoogelt habe, scheint es, dass niemand sonst genau die gleiche Variante meines Problems hat.
Was versuche ich zu tun?
In SSIS versuche ich, aus einer CSV-Datei zu lesen und die Zeilen daraus in eine OLE DB-Datenbank einzufügen. Dafür habe ich das einfachste Setup aller Zeiten vorgenommen (siehe unten).
Flat File Source
- liest die CSV-Zeilen.Derived Column
- macht momentan nichts (es ist nur zum experimentieren da).Data Conversion
- macht momentan nichts (es ist nur zum experimentieren da).OLE DB Destination
- speichert die Zeilen in der Datenbank.
Wenn ich versuche, es auszuführen, wird die Ausführung an meinem OLE DB-Ziel mit der folgenden Fehlermeldung beendet.
Bei der Eingabe "OLE DB Destination Input" (51) ist ein Fehler mit der Eingabespalte "Amount" (187) aufgetreten. Der zurückgegebene Spaltenstatus lautete: "Der Wert konnte aufgrund eines möglichen Datenverlusts nicht konvertiert werden."
Die Spalte, die fehlschlägt ( Amount
), ist derzeit vom Typ DT_STR
. Es scheint der Typ zu sein, an den ich momentan am meisten glaube.
Was habe ich versucht?
- Ich habe versucht, die
Flat File Connection
Funktion "Typen vorschlagen" für die fehlerhafte Spalte zu verwenden. Dadurch wurde derSingle byte signed int
Datentyp empfohlen .- Stoppt an meiner Flat File-Quelle .
- Der Fehler ist, dass die Datenkonvertierung fehlgeschlagen ist. Die Datenkonvertierung für die Spalte "Betrag" ergab den Statuswert 2 und den Statustext "Der Wert konnte aufgrund eines möglichen Datenverlusts nicht konvertiert werden."
- Ich habe versucht,
Derived Column
die Spalte mit a in eine zu verwandelnDT_I4
.- Stoppt an meiner abgeleiteten Spalte .
- Der Fehler ist, dass die Datenkonvertierung fehlgeschlagen ist. Die Datenkonvertierung für die Spalte "Betrag" ergab den Statuswert 2 und den Statustext "Der Wert konnte aufgrund eines möglichen Datenverlusts nicht konvertiert werden."
- Ich habe versucht, den
Data Conversion
Wert meiner Spalte mit a in a umzuwandelnDT_I4
.- Hält bei mir an
Data Conversion
. - Der Fehler ist, dass die Datenkonvertierung fehlgeschlagen ist. Die Datenkonvertierung für die Spalte "Betrag" ergab den Statuswert 2 und den Statustext "Der Wert konnte aufgrund eines möglichen Datenverlusts nicht konvertiert werden."
- Hält bei mir an
- Ich habe versucht, die Länge meines
DT_STR
Werts in der Quelle und im Ziel zu ändern .- Stoppt je nach Einstellung an der Quelle oder am Ziel.
- Ich habe versucht, eine Verbindung über einen Excel Source-Connector mit und ohne die
IMEX=1
zur Verbindungszeichenfolge hinzugefügte Zeichenfolge herzustellen. Kein Glück.
Mein Programmiersinn sagt mir, dass ich geschraubt bin. Ich habe noch nie jemals so ein großes Problem für eine solche einfache Sache anzutreffen.
Und warum kann ich den "potenziellen" Datenverlust nicht einfach ignorieren ? Es ist wirklich frustrierend, um es gelinde auszudrücken.
Mein System
Es ist ein Windows Server 2008 R2-Computer, auf dem SQL Server 2008 installiert ist. Der Computer selbst wird über Windows Update vollständig aktualisiert.
Amount
?
Amount
Spalte aus. Machen Sie einen Screenshot und aktualisieren Sie Ihre Frage mit diesem Bild.