sql >> Databasteknik >  >> RDS >> Sqlserver

skicka xml till sql

Kolla in den tredelade serien om SQL XML på 15 sekunder:http://www.15seconds. com/Issue/050803.htm .

Jag skulle personligen använda SQL XQuery-funktionerna för att strimla isär din XML i bitar och bitar och lagra dem i SQL Server.

Om du har något som:

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

du kan skriva något 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å i princip .noder funktion strimlar din XML till en "pseudo-tabell" Data.Person - varje posten blir en rad i tabellen.

Med .value() funktion, kan du extrahera enskilda värden från dessa strimlade XML-noder. Du har nu ett gäng varchar(20)-fält, det kan vara t.ex. infogas i en tabell.

Denna metod fungerar bra om din XML är ganska liten (några hundra poster). Om du har enorma XML-filer kanske du vill undersöka andra metoder, till exempel XML-bulkbelastning .



  1. excel vba mysql ado-anslutning

  2. Länka samman tabeller mellan två modeller i Cakephp

  3. Ta itu med besvärligheten från att lägga till tidsstämpelkolumn till mysql-tabellen

  4. Konvertera fråga från MySql till Sqlite