2016-07-21 6 views
0

Ich verwende den SQL Server Import/Export-Assistenten, um mehrere große (> 100 GB) Flat-Dateien auf einen SQL Server hochzuladen. Diese Dateien sind begrenzt, nicht mit fester Breite, aber immer noch Fremd nachfolgende Leerzeichen in Spalten:SQL Server Trim Leerzeichen aus Flat-Datei beim Import

100,VALUE   ,VALUE   ,VALUE 
1002,VALUE   ,VALUE   ,VALUE 

Ich habe keine Kontrolle darüber, wie diese Dateien erstellt. Leider wird der Whitespace nach dem Upload in SQL beibehalten. Ich habe bemerkt, dass ich SET ANSI_PADDING OFF; an die SQL-Abfrage anhängen kann, die vom Assistenten automatisch generiert wurde, aber es sieht so aus, als wäre es nicht ratsam, diese Einstellung zu ändern. Gibt es ein besseres Mittel für diesen Prozess? Ist es das überhaupt wert?

Das Säubern der Dateien im Voraus ist nicht möglich, da insgesamt etwa 10 TB Daten hochgeladen werden müssen und der Code Tage, möglicherweise Wochen dauern würde. Ich stelle mir vor, ein ALTER COLUMN ... LTRIM(RTRIM([column_name])) zu laufen wird auch sehr zeitintensiv sein.

+0

Ich bezweifle ANSI_PADDING etwas ändern wird, wenn die Räume tatsächlich in den Datendateien sind. Ich denke, Sie haben keine andere Möglichkeit, entweder die Dateien vorher zu säubern oder die Leerzeichen mit einem 'update' zu ​​beschneiden. Mit 10 TB wird es einige Zeit dauern, aber ich sehe keine andere Lösung. – HoneyBadger

+0

Seltsamerweise scheint es beim Testen die Leerzeichen zu entfernen. – HoHo

Antwort

1

Der Assistent erstellt eine dtsx-Datei, wenn Sie sie speichern möchten. Mithilfe von SSDT können Sie dieses Paket öffnen und abgeleitete Komponenten oder Transformationskomponenten hinzufügen, um das Trimmen durchzuführen, während die Daten importiert werden.

Wenn Sie SSIS nicht auf diese Weise verwenden möchten, können Sie nach dem Import eine Aktualisierung durchführen (anstatt die Spalte zu ändern).

Wenn Sie das SSIS-Route wählen, hier ist ein handliches Skript, das alle Felder trimmen: http://microsoft-ssis.blogspot.com/2010/12/do-something-for-all-columns-in-your.html

Verwandte Themen