Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MS SQL 2008: Abfrage in Datei speichern

Frage Entwicklung

Mitglied: StephanC

StephanC (Level 1) - Jetzt verbinden

08.05.2014, aktualisiert 09.05.2014, 2352 Aufrufe, 6 Kommentare, 1 Danke

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
Mitglied: gempalizer
09.05.2014 um 08:57 Uhr
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
Bitte warten ..
Mitglied: StephanC
09.05.2014 um 10:47 Uhr
Hallo Thomas,

mit bcp habe ich es schon versucht - nur habe ich hier das Problem, das die Dokumentation mehr als dürftig ist.
Vielleicht hast Du einen Tipp für mich, wie ich eine Datei erzeuge mit fester Ausgabebreite bzw. fester Länge ?

Gruß,
Stephan
Bitte warten ..
Mitglied: gempalizer
LÖSUNG 09.05.2014, aktualisiert um 22:09 Uhr
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
Bitte warten ..
Mitglied: StephanC
09.05.2014 um 21:56 Uhr
Hallo Thomas,

wir nähern uns ;)
Jetzt muss ich nur noch wissen, wie ich die Feldlänge angeben kann und diese dann abgeschnitten bzw. auch aufgefüllt wird,
Also:
Vorname 20 Zeichen
Nachname 30 Zeichen
Strasse 30 Zeichen
Bedeutet, das ab Zeichen 51 immer die Strasse anfängt). XML will der Empfänger leider nicht


Ich bin kurz davor ein neus Projewkt in VB6 zu schreiben - aber das muss doch auch mit Bordmitteln des SQL-Servers gehen ?!

Gruß,
Stephan
Bitte warten ..
Mitglied: gempalizer
12.05.2014 um 09:04 Uhr
Hallo Stephan

Hast du mittlerweile schon eine Lösung für dein Problem gefunden?

Ev. könntest du per For-Schleife unterschiedliche Trennzeichen zwischen den Werten einfügen und danach je nach Trennzeichen und Länge des Wertes die Formatierung / Spaltenbreite durchführen.
Bitte warten ..
Mitglied: gempalizer
12.05.2014 um 10:42 Uhr
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 ...
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Täglicher Export einer View aus MS SQL 2008 in Excel oder CSV (9)

Frage von Arafat zum Thema Datenbanken ...

Windows Server
MS SQL 2008 R2 - Dienst beendet sich (5)

Frage von PASUbs zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...