sql >> Databáze >  >> RDS >> Sqlserver

odeslat xml do sql

Podívejte se na třídílnou sérii o SQL XML za 15 sekund:http://www.15seconds. com/Issue/050803.htm .

Osobně bych použil funkce SQL XQuery k rozdělení vašeho XML na kousky a jejich uložení na SQL Server.

Pokud máte něco jako:

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

můžete napsat něco jako:

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)

V podstatě tedy .nodes funkce skartuje váš XML do "pseudotabulky" Data.Person - každý <person> záznam se stane jedním řádkem v tabulce.

Pomocí .value() můžete extrahovat jednotlivé hodnoty z těchto skartovaných uzlů XML. Nyní máte spoustu polí varchar(20), což může být např. vložen do tabulky.

Tato metoda funguje dobře, pokud je váš XML poměrně malý (několik stovek položek). Pokud máte velké soubory XML, možná budete chtít prozkoumat další metody, jako je Hromadné zatížení XML .



  1. MySQLdump prázdný soubor pomocí PHP, ale ne příkazového řádku?

  2. Jak mohu vytvořit tabulku v MySQL s názvem order?

  3. Načtěte data CSV do MySQL v Pythonu

  4. PLS-00103:Setkal se se symbolem „konec souboru“ v bloku jednoduché aktualizace