Zum Inhalt springen

Strukturierter XML-Export in Datei mit SQL-Server


Sephiroth0812

Empfohlene Beiträge

Hallo zusammen,

nach längerer Zeit des Mitlesens habe ich mich nun auch mal registriert um hier ein Problem darzustellen, an dem ich mittlerweile bereits zwei Tage knabbere und bei dem ich trotz umfangreicher Recherche, Herumprobiererei und Suche nach alternativen Wegen noch keine zufriedenstellende Lösung gefunden habe.

Kurz zu mir: Ich bin ausgebildeter FIAE seit Juni letzten Jahres.

Die Situation:

Einige XML-Dateien sollen in einer SQL-Server 2005 Datenbank eingelesen werden und auch wieder als XML-Dateien exportiert werden können.

Einschränkung: Das alles muss komplett allein mit dem SQL-Server geschehen und daher mit SQL/T-SQL bzw. was der sonst noch hergibt.

Das einlesen der Datei in eine Tabellenspalte vom Typ xml funktioniert auch einwandfrei mit diesem Befehl:

EXEC ('INSERT INTO T(XmlCol) SELECT * FROM OPENROWSET( BULK ' +  @filepath + ' , SINGLE_BLOB) AS x;'
und auch exportieren kann ich mit Hilfe von bcp:
EXEC xp_cmdshell 'bcp "SELECT xmlCol FROM TestXML.dbo.T WHERE IntCol = 11" queryout c:\table.xml -c -r\n -t\t -T'
Das Problem jedoch sind zwei Fehler bzw. nicht erwünschte (von der Chefetage) Nebenwirkungen. Zum Vergleich mal die Original-Beispieldatei und die später aus diesen Originaldaten erzeugte neue Datei: Original (eingelesen per OPENROWSET in eine Tabellenspalte vom Typ XML):
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<root>

	<ProductDescription ProductModelID="5">

             <Summary>Some Text</Summary>

        </ProductDescription>

</root>
Durch bcp erzeugte Datei:
<root><ProductDescription ProductModelID="5"><Summary>Some Text</Summary></ProductDescription></root>

Wie man sehen kann fehlt die XML-Deklaration und die Codierungsinformationen.

Ohne diese erste Zeile kann allerdings die Software, welche die XML-Datei später verarbeiten soll nichts mit der Datei anfangen und meldet einen Fehler.

Ich habe natürlich auch in der DB selbst nachgesehen, aber SQL Server scheint die erste Zeile beim Importieren gar nicht mitzunehmen.

Des weiteren schreibt er in der Ausgabedatei alle Elemente und Knoten direkt hintereinander anstatt die Formatierung wie in der Ursprungsdatei zu übernehmen.

Mein Chef möchte das ganze aber in jedem Fall in einer lesbaren Form haben, da gerade bei den größeren Dokumenten mit Grafiken das alles völlig unlesbar wird.

Ich habe schon mit den einzelnen flags beim Export herumprobiert und mit verschiedenen Zeilen- und Feldabschlusszeichen gearbeitet => ohne Erfolg.

Hat vielleicht irgendjemand eine Idee oder einen Tipp, wie ich die Ausgabe aus der DB genauso wieder hinkriege wie es in der Eingangsdatei war?

Besten Dank im Vorraus,

Sephi

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Hallo, ich stehe vor einem ähnlichen Problem. Ich wollte fragen, ob es eine Lösung für dieses Problem gibt? Ich möchte ebenfalls eine XML Datei generieren - der Export sieht folgendermassen aus, dass 3 oder 4 Zeilen mit je 2036 Zeichen geschrieben werden. Nimmt man ein Editor her und gibt alles in eine Zeile so wird es in entsprechender Form im IE angezeigt. Hätte jedoch gerne den Output, wie es mit einem normalen SQL-Befehl funktioniert. z.B. XML Datei in Variable schreiben und diese mit einem SELECT ausgeben...Kann mir jemand helfen??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...