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, 2467 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 ..
Ähnliche Inhalte
Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Datenbanken
gelöst MS SQL - primary Datei verkleinern (6)

Frage von Thomas2 zum Thema Datenbanken ...

Windows Server
gelöst MS SQL Express 2008 - Wie kann ich das Logfile verkleinern? (3)

Frage von ChrisR zum Thema Windows Server ...

Datenbanken
gelöst SQL-Abfrage mit "kleiner gleich" funktioniert nicht (2)

Frage von derSESO zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (14)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...