sql >> Database >  >> RDS >> Sqlserver

stuur xml naar sql

Bekijk de driedelige serie over SQL XML op 15seconds:http://www.15seconds. com/Issue/050803.htm .

Persoonlijk zou ik de SQL XQuery-functies gebruiken om je XML in stukjes en beetjes te versnipperen en op te slaan in SQL Server.

Als je iets hebt als:

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

je kunt iets schrijven als:

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)

Dus eigenlijk zijn de .nodes functie versnippert uw XML in een "pseudo-tabel" Data.Person - elke <person> invoer wordt één rij in de tabel.

Met de .value() functie, kunt u enkele waarden extraheren uit die versnipperde XML-knooppunten. Je hebt nu een aantal varchar(20)-velden, die b.v. ingevoegd in een tabel.

Deze methode werkt goed als uw XML vrij klein is (een paar honderd ingangen). Als je enorme XML-bestanden hebt, wil je misschien andere methoden onderzoeken, zoals XML-bulklading .



  1. Hoe 3/4 karakters geheel getal naar 24-uurs tijdformaat te converteren en te combineren met datum?

  2. Hoe laadt uw Oracle ODBC-stuurprogramma de Oracle-client?

  3. T-SQL:Hoe maak ik een unieke sleutel die hoofdlettergevoelig is?

  4. Controleer of de rij in de database bestaat voordat u deze invoegt