Maison >base de données >tutoriel mysql >Comment convertir des données XML en table dans SQL Server ?

Comment convertir des données XML en table dans SQL Server ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-03 06:09:09794parcourir

How to Convert XML Data to a Table in SQL Server?

Convertir XML en table dans SQL Server

Dans SQL Server, la conversion de données XML au format tabulaire peut être réalisée par diverses méthodes. Une approche consiste à utiliser la méthode des nœuds pour extraire les éléments souhaités de la structure XML, puis à sélectionner ces éléments sous forme de colonnes dans le tableau résultant.

Considérez les données XML suivantes :

<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>

Pour convertissez ce XML en tableau, suivez ces étapes :

  1. Créez un tableau pour stocker le data :
CREATE TABLE TableName (
    IdInvernadero smallint,
    IdProducto smallint,
    IdCaracteristica1 smallint,
    IdCaracteristica2 smallint,
    Cantidad int,
    Folio varchar(7)
);
  1. Chargez le XML dans une variable :
DECLARE @xml XML = '<root><row><IdInvernadero>...</row><row><IdInvernadero>...</row></root>';
  1. Extraire les éléments à l'aide des nœuds méthode :
INSERT INTO TableName (
    IdInvernadero,
    IdProducto,
    IdCaracteristica1,
    IdCaracteristica2,
    Cantidad,
    Folio
)
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);

Cette requête insérera les éléments extraits dans la table avec les noms de colonnes spécifiés. Le tableau résultant aura la structure suivante :

IdInvernadero IdProducto IdCaracteristica1 IdCaracteristica2 Cantidad Folio
8 3 8 8 25 4568457
3 3 1 2 72 4568457

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn