Lesen einer Textdatei mit SSIS mit CRLF oder LF

8

Ich habe ein Problem, bei dem ich eine Textdatei mit LFs als EOL erhalte. Manchmal senden sie die Datei mit CRLFs als EOL. Hat jemand gute Ideen, wie ich SSIS entweder als EOL benutzen kann?

Es ist eine sehr einfache Konvertierungsoperation mit Notepad ++, um es zu ändern, was immer ich brauche, aber es ist manuell und ich möchte, dass es automatisch ist.

Danke,

BEARBEITEN. Ich habe es (aber nicht perfekt) mit Swiss File Knife vor dem Datenfluss behoben.

    
Dayton Brown 24.05.2012, 15:27
quelle

3 Antworten

1

Ich stimme der Abstimmung des OP für Swiss File Knife zu.

Um das zu integrieren, musste ich eine Execute Process Task hinzufügen:

Allerdings habe ich eine Reihe von Paketen, die For-Each-File Loops ausführen, also brauchte ich etwas BIML - vielleicht hilft das der nächsten Seele.

%Vor%     
sorrell 02.12.2016, 15:20
quelle
6

Wenn die Zeilenabschlüsse immer die eine oder die andere sind, würde ich vorschlagen, zwei Dateiverbindungsmanager einzurichten, einen mit dem Zeilenbegrenzer "CRLF" und den anderen mit dem Zeilenbegrenzer "LF".

Erstellen Sie dann eine boolesche Paketvariable (etwa @IsCrLf) und legen Sie diese in Ihrem Paket fest. Machen Sie den ersten Schritt in Ihrem SSIS-Paket mit einer Skriptaufgabe , in der Sie einen Dateistream lesen und versuchen herauszufinden, was der Leitungsabschluss ist (basierend auf dem, was Sie im Stream finden). Setzen Sie den Wert Ihrer Variablen entsprechend.

Erstellen Sie nach der Script-Aufgabe in Ihrem Kontrollfluss zwei separate Datenflüsse (einen für jeden Dateiverbindungs-Manager) und verwenden Sie eine Precedence Constraint wird auf den Konnektoren auf "Expression and Constraint" gesetzt, um abhängig vom Wert der @IsCrLf-Variable festzulegen, welcher Datenfluss verwendet werden soll.

Beispiel für den vorgeschlagenen Kontrollfluss unten.

    
GShenanigan 28.05.2012 13:27
quelle
1

Wie wäre es mit einer abgeleiteten Spalte mit der REPLACE-Operation nach der Dateiquelle, um die CRLFs in LFs zu ändern?

    
Diego 24.05.2012 16:02
quelle

Tags und Links