Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von August

SELFHTML Forumsarchiv
INPUT XML in MSSQL

Informationsseite
  1. Seite (DATENBANK) INPUT XML in MSSQL von LeKuchen, 30. 08. 2006, 16:32
nach unten

INPUT XML in MSSQL

Die folgende Nachricht zum Thema stammt von: LeKuchen, 30. 08. 2006, 16:32

Hallo zusammen,

der neue SQL 2005 unterstützt XML als Datentyp. Mittels einer Stored Procedure möchte ich XML-Fragmente in einer Datenbank speichern.

Das XML sieht wie folgt aus:

<document docid="1">
   <data>
      <abc />
      <cde />
      <efg />
   </data>
</document>

Das INPUT Statement (das obige XML-Dokument steht im XMLHandler zur Verfügung):

INSERT INTO docs (docid, docxml)
SELECT docid, cast(docxml as xml)
FROM OpenXML(@XMLHandler,'/document', 1)
WITH (docid int '@docid' ,
docxml xml 'data/child::*')

Das Problem ist, das nur das erste Fragment (erster Childnode: <abc />) in die Spalte gespeichert wird und nicht alle drei Fragmente.

Hat jemand dafür eine Lösung?

P.S.: Wenn ich den ganzen data-Knoten speichere mit der XPATH-Angabe 'data' geht es, aber ich möchte gerne nur die Childelemente von data in der Datenbankspalte ablegen...

Gruß
LeKuchen

nach obennach unten

INPUT XML in MSSQL

Die folgende Nachricht zum Thema stammt von: Plutoide, 30. 08. 2006, 19:24

Hi,

»» INSERT INTO docs (docid, docxml)
»» SELECT docid, cast(docxml as xml)
»» FROM OpenXML(@XMLHandler,'/document', 1)
»» WITH (docid int '@docid' ,
»» docxml xml 'data/child::*')
»» [...]
»» Hat jemand dafür eine Lösung?

ich habe eine Idee.

Es liegt moeglicherweise am Parameter 'data/child::*'. Da wuerde ich mal etwas variieren bzw. in der Dokumentation nachlesen, je nach Stimmungslage.

Plutoide

nach obennach unten

INPUT XML in MSSQL

Die folgende Nachricht zum Thema stammt von: LeKuchen, 31. 08. 2006, 09:35

Hallo,

»» »» INSERT INTO docs (docid, docxml)
»» »» SELECT docid, cast(docxml as xml)
»» »» FROM OpenXML(@XMLHandler,'/document', 1)
»» »» WITH (docid int '@docid' ,
»» »» docxml xml 'data/child::*')
»» »» [...]
»» »» Hat jemand dafür eine Lösung?

»» Es liegt moeglicherweise am Parameter 'data/child::*'. Da wuerde ich mal etwas variieren bzw. in der Dokumentation nachlesen, je nach Stimmungslage.

Naja, war auch mein erster Gedanke, dass es an dem XPATH Ausdruck liegt - habe aber alle anderen Möglichkeiten, die XPATH bietet, auch durchgetestet (data/*, etc.) - bringt auch keinen Erfolg.

Gruß
LeKuchen

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von August

© 1998-2006 Seite Impressum, Software: Classic Forum