it-swarm.com.de

Wie wird in ssis ein leerer in null konvertiert?

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?

23

Möglicherweise möchten Sie auch die Option zum Beibehalten von Nullwerten für die Quell- und Zielverbindung aktivieren (falls verfügbar).

18
Thony

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

43
Farfarak

Haben Sie so etwas ausprobiert (unter der Annahme, dass der Datentyp die Zeichenfolge/varchar ist): 

LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName] 
7
NG.

Fix für das obige Problem :::::

Quelle und Ziel müssen mit der Option "Nullwerte zulassen" markiert sein und es wird funktionieren.

2
sathish

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!

1
Chris

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
0
FreeTheLemmings