Sephiroth0812 Geschrieben 11. März 2009 Teilen Geschrieben 11. März 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Haitsch Geschrieben 14. April 2010 Teilen Geschrieben 14. April 2010 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?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.