Heim >Datenbank >MySQL-Tutorial >Wie kann ich XML-Daten mit XQuery in eine SQL Server-Tabelle konvertieren?

Wie kann ich XML-Daten mit XQuery in eine SQL Server-Tabelle konvertieren?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 00:50:40201Durchsuche

How can I convert XML data to a SQL Server table using XQuery?

XML-Daten in eine Tabelle in SQL Server konvertieren

In SQL Server können Sie XML-Daten mithilfe der XML-Daten in ein Tabellenformat konvertieren Typ und XQuery-Ausdrücke. So geht's:

Ansatz 1: Verwenden des Node Value Extractor

Angenommen, Sie haben ein XML-Dokument mit Daten, die wie folgt formatiert sind:

<row>
    <IdInvernadero>8</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>8</IdCaracteristica1>
    <IdCaracteristica2>8</IdCaracteristica2>
    <Cantidad>25</Cantidad>
    <Folio>4568457</Folio>
</row>
<row>
    <IdInvernadero>3</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>1</IdCaracteristica1>
    <IdCaracteristica2>2</IdCaracteristica2>
    <Cantidad>72</Cantidad>
    <Folio>4568457</Folio>
</row>

Um dieses XML in eine Tabelle umzuwandeln, können Sie die folgende XQuery verwenden Ausdruck:

SELECT  
       Tbl.Col.value('IdInvernadero[1]', 'smallint'),  
       Tbl.Col.value('IdProducto[1]', 'smallint'),  
       Tbl.Col.value('IdCaracteristica1[1]', 'smallint'),
       Tbl.Col.value('IdCaracteristica2[1]', 'smallint'),
       Tbl.Col.value('Cantidad[1]', 'int'),
       Tbl.Col.value('Folio[1]', 'varchar(7)')
FROM   @xml.nodes('//row') Tbl(Col)

Ansatz 2: Verwendung des Attributwertextraktors

Alternativ, wenn Ihre XML-Daten mit Attributen anstelle von Knoten formatiert sind, wie zum Beispiel:

<row IdInvernadero="8" IdProducto="3" IdCaracteristica1="8" IdCaracteristica2="8" Cantidad ="25" Folio="4568457" />
<row IdInvernadero="3" IdProducto="3" IdCaracteristica1="1" IdCaracteristica2="2" Cantidad ="72" Folio="4568457" />

Sie können den folgenden XQuery-Ausdruck verwenden:

SELECT  
       Tbl.Col.value('@IdInvernadero', 'smallint'),  
       Tbl.Col.value('@IdProducto', 'smallint'),  
       Tbl.Col.value('@IdCaracteristica1', 'smallint'),
       Tbl.Col.value('@IdCaracteristica2', 'smallint'),
       Tbl.Col.value('@Cantidad', 'int'),
       Tbl.Col.value('@Folio', 'varchar(7)')

FROM   @xml.nodes('//row') Tbl(Col)

Diese Abfrage extrahiert die Werte aus den XML-Attributen und wandeln sie in eine Tabelle um Format.

Referenzen:

  • [http://kennyshu.blogspot.com/2007/12/convert -xml-file-to-table-in-sql-2005.html](http://kennyshu.blogspot.com/2007/12/convert-xml -file-to-table-in-sql-2005.html)
  • [http://msdn.microsoft.com/en-us/library/ms3451 17(SQL.90).aspx](http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx)

Das obige ist der detaillierte Inhalt vonWie kann ich XML-Daten mit XQuery in eine SQL Server-Tabelle konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn