SSIS speichern, string variable text-Datei
Es scheint, wie es sollte einfach sein, aber als der noch ich haben einen Weg gefunden, um den Wert zu speichern gespeichert, die in einem SSIS-string-variable in eine Textdatei. Ich habe mithilfe der Flatfile-Ziel innerhalb eines Datenflusses, aber das erfordert eine Datenfluss-Quelle.
Irgendwelche Ideen auf, wie dies zu tun?
InformationsquelleAutor Dav Evans | 2009-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine kleine Probe-code, arbeitete in einer SQL-CLR-C#. Sie müssen mithilfe von VB wenn Sie auf 2005 glaube ich. Die Skript-task muss auch die read-variable-Eigenschaft auf MyVariable, um den Wert für eine variable zur Verfügung stehen.
InformationsquelleAutor Sam
Einen Skripttask verwenden.
Ich habe gerade versucht dieses. Ich habe eine Datei-Verbindungs-manager, mit der Verbindungszeichenfolge, die auf die Datei, die ich schreiben wollte. Dann habe ich eine string-variable, die den text zu schreiben.
Habe ich ein Skript Aufgabe, angegeben meine string-variable in der Read-only Variablen-Liste, dann auf Skript Bearbeiten. Das Skript wurde wie folgt:
Funktionierte dies ohne Probleme.
InformationsquelleAutor John Saunders
Alles was es braucht, ist eine Zeile code in einem einfachen Skript Aufgabe. Keine andere Abhängigkeiten, wie Sie einen Verbindungs-manager, notwendig sind.
Hier ist, was es Aussehen würde in C#:
Natürlich die wichtigste Linie ist hier die eine enthält die WriteAllText-Funktion aufrufen.
Der Path-variable enthalten sollte, einen vollständigen Pfad + Dateinamen für die Ausgabe-Datei.
InformationsquelleAutor Valentino Vranken
Es ist möglich, eine transformation für Abgeleitete Spalten zu schreiben, die den Wert einer variable in eine Spalte. Das problem ist, dass es braucht eine Quelle, es zu fahren, und es gibt keine Lager-Datenquelle, die Sie verwenden können, nur spuckt eine null-Zeile in der pipeline.
So, entweder du Wiederverwendung einer einzelnen Zeile Quellcode zu fahren, die transformation für abgeleitete Spalte, oder Sie tun, was eine andere Antwort sagt, und tun Sie es mit einem Script-source.
InformationsquelleAutor Jeremy Smyth
Habe ich es so wie du beschrieben hast. Ich hatte bereits einen OLE DB-Verbindungs-manager definiert also, ich habe eine OLE DB-Quelle und verwendet den SQL-Befehl Daten-access-Modus. Ich habe eine einfache Abfrage:
select getdate() as dt
...nur, um es aus dem Weg. Jetzt weiß ich das Datum meines variable ziehen. Dann habe ich eine Abgeleitete Spalte zu Verwandeln, um mein Paket verfügbaren Variablen und schrieb es sich um ein flat-file.
Elegant? Nein, aber es bekommt den job getan.
Ich interpretierte die Frage zu bedeuten, dass die Quelle der Daten war eine Behinderung, aber kein show-stopper. In der Lösung, die ich herausgefunden, einen Weg, um die Datenquelle produktiv das ist, warum ich es gepostet.
InformationsquelleAutor CTKeane
Können sagen, Sie nicht zu verwirren wollen mit Skript-Aufgaben, und Sie haben nicht eine Datenbank, zu der Sie eine Verbindung herstellen können nur zur Ausgabe einer Datenquelle Befehl wie:
Gibt es noch mehrere Möglichkeiten, um ein Prozess-task für etwas so einfach wie das schreiben einer Textzeile in eine Datei. Zum Beispiel können Sie PowerShell verwenden, mit einer Eingabe-variable erstellt mit dem folgenden Ausdruck:
Bemerken, dass ich entkam der mit dem Namen, weil die einzelnen Zitate sind dort legal. Auch Anmerkung, die ich verwendet '>' Umleitung überschreibt die Datei, wenn Sie existiert. Wenn ich wollte anfügen, ich würde verwenden '>>'.
Anfangs hatte ich Schwierigkeiten mit dieser Methode, wenn Benutzer::Text mehrere Zeilen. Es stellt sich heraus, müssen Sie einige zusätzliche EOL-Zeichen werden nach Ihrem Dateinamen, wenn Sie einen Befehl umfasst Linien. Wie diese:
Verwenden cmd.exe mit echo ist ein wenig mehr unsicher, aber können auch in bestimmten Verhältnissen und hat viel weniger overhead.
P. S. ich habe bemerkt, mit einigen Versionen der PowerShell, die StandardInputVariable Inhalt wird ignoriert ohne diese:
im Argumente-Feld. Ein einsamer minus-Zeichen als Befehl argument ist 'Magie' und dokumentiert https://docs.microsoft.com/en-us/powershell/scripting/powershell.exe-command-line-help. Ich glaube alle Versionen der PowerShell nehmen diese param also auch wenn es nicht für die version, die Sie aufnehmen wollen, da es sollte nicht etwas zu brechen, und möglicherweise halten Sie Ihren code zu brechen, wenn PowerShell wird aktualisiert, um eine version, die es erfordert.
InformationsquelleAutor bielawski