2016-07-14 16 views
0

Wenn die Spalte nicht NULL ist, kann die Konvertierung erfolgreich durchgeführt werden. Das Ziel-DB-Feld akzeptiert Nullwerte.SSIS-Datenkonvertierung von CSV-Quellspalte NULL nach DB-Ziel Dezimal (18,2)

In meinem Datenkonvertierung Schritt I Eingabespalte des Datatype zu numeric[DT_Numeric], Precision 18 und Maßstab 2.

Ich habe zwei Reihen in meiner CSV, die erste Zeile keine internationalen NULLS enthalten gesetzt haben .. und wenn ich das ausführe, ist es ein Erfolg. Allerdings, wenn ich eine zweite Zeile mit einem NULL-Wert in dieser Spalte hinzufügen versagt es und ich bekomme diese Fehler:

[Data Conversion [2]] Error: Data conversion failed while converting column "Column 24" (138) to column "DbColumn24" (22). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.".

[Data Conversion [2]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Data Conversion.Outputs[Data Conversion Output].Columns[DbColumn24]" failed because error code 0xC020907F occurred, and the error row disposition on "Data Conversion.Outputs[Data Conversion Output].Columns[DbColumn24]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Data Conversion" (2) failed with error code 0xC0209029 while processing input "Data Conversion Input" (3). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

Ich glaube nicht, ich brauche einen abgeleitete Spalten Schritt vor Schritt der Datenkonvertierung keine NULL-Werte zu handhaben, weil Die DB-Spalte akzeptiert Nullen.

Antwort

0

Da Ihre Quelle eine CSV ist, bezweifle ich, dass Sie in Ihrer Quelle überhaupt irgendwelche NULL-Werte haben. Wahrscheinlich haben Sie leere Zeichenfolgenwerte, die nicht mit NULL übereinstimmen, und leere Zeichenfolgen können nicht implizit in Dezimal konvertiert werden. Sie müssen die leeren Strings in einem Ausdruck wahrscheinlich explizit in NULL konvertieren.

+0

Oh ja, du hast Recht. Es ist also tatsächlich String "NULL". – User123

+0

Also, wenn eine CSV generiert wird NULL tatsächlich konvertiert in eine leere Zeichenfolge und nicht das eigentliche Wort "NULL" oder? Ich muss vielleicht meine Pseudo-CSV "NULL" 's zu leeren Strings dann ändern. – User123

+0

Nein, Sie können den Leerschritt überspringen. Wenn Ihre CSV-Datei die Zeichenfolge "NULL" enthält, müssen Sie nur "NULL" (die Zeichenfolge) in "NULL" (den DBNull-Wert) konvertieren. –

0

Die Arbeit rund um wäre 1) Zuerst die Spalte zu varchar/nvarchar 2) Verwenden Sie abgeleitete Spalte konvertieren Decimal 3) Ordnen Sie die konvertierten Spalte Ziel zu konvertieren

Verwandte Themen