SSIS: Dateiausgabe mit Zeitstempel im Dateinamen

11/09/2008 - 17:44 von Liz Helmecke | Report spam
Hallo NG,

kann doch nicht so schwer sein:
Per SQL Daten aus meiner SQL Server 2005 DB holen und in ein Flatfile
exportieren, das jeweils die aktuelle Zeit im Dateinamen tràgt:
z.B. MeineDatei_20080911_174023.txt

Ich komme soweit, daß ich ein Flatfile erzeugen kann, das immer gleich
heißt.
Aber wie bekomme ich den immer neuen Dateinamen?
Hab's mit einer Variablen versuche, die den Ausdruck evaluiert: "MeineDatei
" + (DT_STR,50,1252)getdate() + ".txt", aber das làuft nicht durch (Task
bleibt rot).

1. wie macht man das?
2. wie kann man debuggen, warum das nicht làuft?

Danke
Liz
 

Lesen sie die antworten

#1 Gerald Aichholzer
11/09/2008 - 20:41 | Warnen spam
Hallo Liz,

Liz Helmecke wrote:

kann doch nicht so schwer sein:
Per SQL Daten aus meiner SQL Server 2005 DB holen und in ein Flatfile
exportieren, das jeweils die aktuelle Zeit im Dateinamen tràgt:
z.B. MeineDatei_20080911_174023.txt

Ich komme soweit, daß ich ein Flatfile erzeugen kann, das immer gleich
heißt.
Aber wie bekomme ich den immer neuen Dateinamen?
Hab's mit einer Variablen versuche, die den Ausdruck evaluiert: "MeineDatei
" + (DT_STR,50,1252)getdate() + ".txt", aber das làuft nicht durch (Task
bleibt rot).



du musst die ConnectionString-Eigenschaft des Flat File Connection
Managers als Expression definieren, in der du den Wert der Variablen
zuweist. Der ConnectionString besteht aus dem Dateinamen inklusive
Pfad.

- den Flat File Connection Manager selektieren
- bei den Eigenschaften auf den Button "..." bei Expressions klicken
- als Property den Connection String auswàhlen
- und als Expressen den Namen der Variablen, z.B. @[User::FileName]

In deiner Variablenberechnung musst du das Ergebnis von getdate()
noch so umformatieren, dass alle ungültigen Zeichen in einem Datei-
namen entfernt werden. Das (DT_STR,50,1252) vor getdate() liefert
bei mir einen Fehler, weil das Ergebnis von getdate() bereist vom
Typ DT_STR ist.

Nur getdate() liefert bei mir z.B. "11.09.2008 20:39:43" - dabei
ist zu beachten, dass das Zeichen : in einem Dateinamen nicht er-
laubt ist.

lg,
Gerald

Ähnliche fragen