sql >> Database teknologi >  >> RDS >> Sqlserver

send xml til sql

Se den tredelte serie om SQL XML på 15 sekunder:http://www.15seconds. com/Issue/050803.htm .

Jeg ville personligt bruge SQL XQuery-funktionerne til at adskille din XML i bits og stykker og gemme dem i SQL Server.

Hvis du har noget som:

<data>
  <person>
     <name>Jones</name>         
     <firstname>Peter</firstname>
  </person>
  <person>
     <name>Smith</name>         
     <firstname>Frank</firstname>
  </person>
<data>

du kan skrive noget som:

SELECT
   Data.Person.value('(name)[1]', 'varchar(20)') as 'Name',
   Data.Person.value('(firstname)[1]', 'varchar(20)') as 'First Name'
FROM 
   @XmlVar.nodes('/data/person') As Data(Person)

Så grundlæggende er .nodes funktion makulerer din XML til en "pseudo-tabel" Data.Person - hver indtastning bliver en række i tabellen.

Med .value() funktion, kan du udtrække enkelte værdier fra disse makulerede XML-noder. Du har nu en masse varchar(20) felter, det kan f.eks. indsat i en tabel.

Denne metode fungerer godt, hvis din XML er ret lille (et par hundrede poster). Hvis du har enorme XML-filer, vil du måske undersøge andre metoder, såsom XML-bulkload .



  1. Opret forbindelse til Oracle ved hjælp af SSMA

  2. Yii2:Konvertering af en rå forespørgsel til ActiveRecord

  3. Django admin MySQL langsom INNER JOIN

  4. Vælg ikke-duplikerede poster i en MySQL-tabelkolonne