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.
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
Seltsamerweise scheint es beim Testen die Leerzeichen zu entfernen. – HoHo