none
SSIS: Flatfile Import - seltsames Verhalten bei Änderung der Tabellenstruktur (SQL 2005) RRS feed

  • Allgemeine Diskussion

  • Hallo,

    ich habe einen Flatfile-Import, der seit Jahren problemlos läuft. Nun hat der Hersteller der SW, aus der die Flatfiles generiert werden, ein Update eingespielt und dabei in der Flatfile-Tabelle eine Spalte eingefügt. Logischerweise fand diese neue Spalte keine Berücksichtigung beim Import. Was ich nicht verstehe, das Importergebnis sah dann so aus (erste Zeile= Überschriften)

    Sp1;SP2;SP3,SP4;SP5..
    I1  ; I2 ;Ineu;I3;I4...

    Also, die Spaltenüberschriften bleiben gleich, obwohl der Flatfile sich geändert hat, die Inhalte ändern sich aber, d. h. die Spaltenüberschriften passen danach nicht mehr zu den Inhalten, die Inhalte sind um eine Spalte nach rechts verschoben. Ich habe das inzwischen mit Mühe beheben können, aber hat jemand von Euch eine Erklärung dafür, wie dieses Problem zustande kommt?

    Danke schon mal!

    Susanne

    • Typ geändert Andrei Talmaciu Montag, 24. Januar 2011 12:28 inaktiver Thread
    Donnerstag, 6. Januar 2011 13:26

Alle Antworten

  • Hallo Susanne,
    wie hast Du denn den Verbindungsmanager für den Flatfile definiert?
    Wieviele Spalten liefert der, bzw. wie erkennt er sie? Wahrscheinlich ist dies ja positionsgebunden. Fügt man eine Spalte ein, verschieben sich alle folgenden Spalten.
    Wahrscheinlich haben die Spalten die dann weiter im SSIS-Paket verwendet werden Namen wie Spalte0, Spalte1, ...
    Bei der Zuordnung zu der Tabelle wird dann wahrscheinlich einfach Spalte0 auf SP1, Spalte1 auf SP2 und Spalte2 auf SP3 gemapped. Und schon hast Du die Verschiebung auch in Deiner Tabelle. Die letzte Spalte fällt dann einfach hinten runter. Wenn man Glück hat, fällt so ein Paket noch mit Typkonvertierungen auf die Nase. Darauf kann man sich aber nicht verlassen.

    Flatfiles haben wegen der fehlenden Struktur ihre Tücken beim Import. Ich gehe in der Regel so vor, dass ich die ganze Zeile in ein Feld vom Typ varchar importiere und dann über eine Prozedur die Daten auseinander nehme und entsprechende Plausiprüfungen vornehme.

    Einen schönen Tag noch,
    Christoph


    Microsoft SQL Server MVP
    http://www.insidesql.org/blogs/cmu

    Donnerstag, 6. Januar 2011 14:29
    Beantworter
  • Hallo, Christoph,

    vielen Dank für Deine Info. Ich habe nichts weiter am Verbindungsmanager eingestellt, bis auf die Dinge, die ich brauchte. Im Verbindungsmanager konnte ich sehen, dass die Überschriften so blieben wie vorher, aber die Inhalte um eine Position nach rechts verschoben wurden. Dein Vorgehen wäre für mich ziemlich aufwändig, ich denke, ich habe >20 Spalten im flatfile. Was das "auf die Nase fallen" angeht, das hatte ich vorher auch schon, der Hersteller hatte freundlicherweise ohne irgendeinen Hinweis oder Notwendigkeit die Breite einer Spalte von 1 auf 2 hochgesetzt ;-). Blöderweise habe ich die Verschiebung bei der Gelegenheit nicht bemerkt.

    Einen guten Wochenstart!

    Susanne

    Sonntag, 9. Januar 2011 19:21
  • Hallo Susanne,

    könnte es sein, daß in einem der Felder der Feldtrenner auch inenrhalb der Daten steht? Das könnte zu dem beschriebene Phänomen führen.

    Montag, 10. Januar 2011 09:06