MS SQL 2008: Abfrage in Datei speichern
Hallo Zusammen,
ich soll jeden Tag zu einer bestimmten Uhrzeit diverse Daten in einer Datei zur Verfügung stellen.
Die Abfrage für die Daten habe ich schon gebaut und als views angelegt. Nun muss ich diese Daten aber auch noch in eine
Datei einfügen, wobei die Felder eine vorgeschrieben Länge haben und hintereinander weggeschrieben werden müssen - also ohne Trennzeichen.
Beispiel:
Santa...........Claus......Himmelspforte.2........4711 Nordpol
Chris............Cringel....Suedufer.12..............4916.Oakland
Ich habe es schon mit dem DTS probiert, treffe hier aber auf das Problem, das kein Zeilenumbruch statt findet.
Am liebsten wäre mir ein entsprechendes "Select into test.txt" was ich täglich per Agent anstossen kann - wer kann helfen ?
Gruß,
Stephan
ich soll jeden Tag zu einer bestimmten Uhrzeit diverse Daten in einer Datei zur Verfügung stellen.
Die Abfrage für die Daten habe ich schon gebaut und als views angelegt. Nun muss ich diese Daten aber auch noch in eine
Datei einfügen, wobei die Felder eine vorgeschrieben Länge haben und hintereinander weggeschrieben werden müssen - also ohne Trennzeichen.
Beispiel:
Santa...........Claus......Himmelspforte.2........4711 Nordpol
Chris............Cringel....Suedufer.12..............4916.Oakland
Ich habe es schon mit dem DTS probiert, treffe hier aber auf das Problem, das kein Zeilenumbruch statt findet.
Am liebsten wäre mir ein entsprechendes "Select into test.txt" was ich täglich per Agent anstossen kann - wer kann helfen ?
Gruß,
Stephan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237519
Url: https://administrator.de/contentid/237519
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Stephan
Schau dir diesbezüglich mal das Hilfsprogramm bcp an. Dieses kannst du in einem Batch-File anschupsen um eine Query abzusetzen und die Ergebnisse in ein txt-File zu schreiben (mit queryout).
Sollte etwa so aussehen (die diversen Parameter findest du im Netz, habe diese nicht mehr im Kopf):
bcp "Select * from Table where x=1" queryout "C:\test.txt"
http://msdn.microsoft.com/de-ch/library/ms162802.aspx
Hoffe dies hilft dir weiter. Grusss Thomas
Schau dir diesbezüglich mal das Hilfsprogramm bcp an. Dieses kannst du in einem Batch-File anschupsen um eine Query abzusetzen und die Ergebnisse in ein txt-File zu schreiben (mit queryout).
Sollte etwa so aussehen (die diversen Parameter findest du im Netz, habe diese nicht mehr im Kopf):
bcp "Select * from Table where x=1" queryout "C:\test.txt"
http://msdn.microsoft.com/de-ch/library/ms162802.aspx
Hoffe dies hilft dir weiter. Grusss Thomas
Hoi Stephan
Ja, du hast recht. Die Dokumentationen zu bcp sind eher dürftig.
Wäre allenfalls sqlcmd was?
Bsp:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -S Server\Instanz -d DBName -E -Q "Select x From y" -o "C:\test.txt" -h-1 -w 700
-h-1 entfernt die Spaltenheader
-w gibt die Spaltenbreite an.
Hab ich hier gefunden: http://de.depconline.com/49272
Ja, du hast recht. Die Dokumentationen zu bcp sind eher dürftig.
Wäre allenfalls sqlcmd was?
Bsp:
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -S Server\Instanz -d DBName -E -Q "Select x From y" -o "C:\test.txt" -h-1 -w 700
-h-1 entfernt die Spaltenheader
-w gibt die Spaltenbreite an.
Hab ich hier gefunden: http://de.depconline.com/49272
Ich habe mich nochmals damit befasst. Für das Vorhaben wäre anscheinend bcp schon der richtige Weg, da man dabei zuerst ein Format-File erzeugen und sich danach per bcp darauf beziehen kann. Da du ja bereits eine View für deine Daten hast, kannst du das Format-File in Bezug zur View anlegen.
Folgender Link sollte dir weiterhelfen: https://www.simple-talk.com/sql/database-administration/working-with-the ...
Folgender Link sollte dir weiterhelfen: https://www.simple-talk.com/sql/database-administration/working-with-the ...