2016-07-14 9 views
0

Ich habe mehrere .csv-Dateien in einem Verzeichnis.ForEach Loop Container connundrum

Ich habe einen ForEach-Loop-Container erstellt, der jede Datei im Verzeichnis durchläuft.

enter image description here

Das Problem ist, ich einen Einsatz csv in die Datenbank haben und die Zieldatenbanktabelle wird von einem SSIS var tblname definiert, die bis in die foreach Behälter beginnt null ist und füllt die var Current mit einem Dateipfad String. enter image description here Das Problem tritt auf, weil diese Variable nicht deklariert ist, so dass die OLDBC-Verbindung nicht funktioniert, da sie nach einer Tabelle mit einem Nulltitel sucht. enter image description here Gibt es eine Möglichkeit, den Start der einzelnen Schleifen zu erzwingen, bevor die Verbindung zur Datenbank hergestellt wird?

+0

Sind die Inhalte der einzelnen CSV-Datei in der gleichen Datenbanktabelle zu importieren, oder versuchen Sie, jede CSV-Datei in mehrere Datenbanktabellen importieren mit denen jeder ein ähnlicher Name wie der der Quell-CSV-Datei? – user3662215

+0

Sie können auch versuchen, den Verbindungszeichenfolgenwert des OLE DB-Verbindungs-Managers bei jedem Durchlauf der Schleife dynamisch zu ändern. Definieren Sie zuerst einen tatsächlichen Wert für die Variable tblName, die nicht NULL ist. Dann wenden Sie das in einem Ausdruck des ConnectionSring unter Ihrem Verbindungs-Manager an. Im Ausdruck würden Sie den Katalogwert durch die Variable tblName ersetzen. Auf diese Weise ändert sich der Name der Katalogtabelle des Verbindungs-Managers dynamisch, da sich der Wert für TblName mit jedem Durchlauf der Schleife ändert. – user3662215

Antwort

0

ValidateExternal Meta-Daten-Option falsch Versuchen Sie, wenn Sie in einzelne Tabelle laden