Ich extrahiere Daten aus Excel in ssis
. Eine der Excel-Spalten enthält blank
-Werte. Ich muss also blank
value durch null ersetzen, sonst wird mein Paket ausfallen. Irgendwelche Vorschläge?
Möglicherweise möchten Sie auch die Option zum Beibehalten von Nullwerten für die Quell- und Zielverbindung aktivieren (falls verfügbar).
Verwenden Sie in DataFlow die DerivedColumn-Komponente.
Ersetzen Sie Ihre Spalte und setzen Sie diese Codezeile in den Ausdruck
ColumnName == "" ? NULL(DT_WSTR,50) : ColumnName
Es wird sichergestellt, dass null zurückgegeben wird, wenn die Spalte leer ist
Haben Sie so etwas ausprobiert (unter der Annahme, dass der Datentyp die Zeichenfolge/varchar ist):
LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName]
Fix für das obige Problem :::::
Quelle und Ziel müssen mit der Option "Nullwerte zulassen" markiert sein und es wird funktionieren.
Ich hatte eine ähnliche Instanz, in der ich eine Zeichenfolge in einer Datumsspalte durch NULL ersetzen wollte und den folgenden Code verwendet:
LEN (deine_Daten) <2? NULL (DT_WSTR, 50): Ihre_Daten
In diesem Fall hatte die Zeichenfolge nur eine Länge von 1. Ich verwendete dann die Datenumwandlungstransformation, um sie zum Typ dt_dbtimestamp zu bekommen.
Hoffentlich hilft das!
Sie sollten die Komponente Abgeleitete Spalte und einen Bedingungsausdruck verwenden. Da dies eine bedingte Anweisung ist, müssen die Datentypen gleich sein, um ein boolesches Ergebnis zu erstellen.
Versuchen Sie es mit diesem:
ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName