Bei Verwendung des SSIS-Import / Export-Assistenten NULL in numerischen Spalten beibehalten?

8

Ich habe ein Problem beim Hochladen von Daten aus tabulatorgetrennten flachen Dateien (TSV-Dateien) in SQL Server 2005 mit dem SSIS-Datenimport-Assistenten. Ich habe dieses Problem nicht mit dem gleichwertigen Verfahren in SQL Server 2000 festgestellt, und ich habe überprüft, dass die interne Struktur der Dateien, die ich zu importieren versuche, seit lange vor dem SQL Server-Upgrade unverändert geblieben ist.

Das Problem besteht darin, dass alle leeren Werte in Spalten mit numerischen Datentypen (z. B. smallint, float usw.) beim Import anstelle von NULL in 0 konvertiert werden. Dies bedeutet, dass AVGing über diese Daten eine fehlerhafte Ausgabe liefert.

Die TSV-Dateien enthalten keine Textqualifizierer, das Testen der Verwendung von Qualifikationsmerkmalen mit Dummydaten führte jedoch nicht zu einer Lösung dieses Problems.

Es ist möglich, die NULL-Werte beizubehalten, indem Sie sie in VARCHAR-Spalten importieren. Dies ist jedoch alles andere als ideal. Gibt es eine Möglichkeit, den SSIS-Import / Export-Assistenten anzuweisen, leere Werte aus flachen Dateien in Spalten mit numerischen Datentypen als NULL statt als 0 zu importieren?

    
Lethanta 24.02.2010, 18:54
quelle

2 Antworten

4

Siehe meine Antwort hier bitte

Der Assistent legt nicht die richtige Einstellung offen, die Sie brauchen ...

    
gbn 24.02.2010, 19:07
quelle
2

@gbn: Danke für den Zeiger. Ich glaube, ich habe jetzt einen Weg gefunden, um dieses Problem zu umgehen und konnte erfolgreich Daten in meine SQL Server 2005-Datenbank importieren, die NULL-Werte in numerischen Spalten enthalten.

Falls jemand anderes das gleiche Problem hat:

Ich habe die Daten mithilfe des Datenflusstasks in Business Intelligence Development Studio importiert (anstatt wie zuvor den dtswizard zu verwenden), indem ich eine Datenflusstask von der einfachen Dateiquelle zum OLE DB-Ziel erstellt habe.

Im Feld "Quelldatei-Editor für flache Dateien" ist das Kontrollkästchen "Werte aus der Quelle als Nullwerte im Datenfluss beibehalten" aktiviert. Dies anzukreuzen scheint dieses Problem zu lösen.

Wie @gbn darauf hingewiesen hat, fehlt diese Box im Assistenten.

    
Lethanta 25.02.2010 11:44
quelle