Maison > base de données > tutoriel mysql > Comment puis-je transformer efficacement des données XML en une table SQL Server à l'aide de Transact-SQL ?

Comment puis-je transformer efficacement des données XML en une table SQL Server à l'aide de Transact-SQL ?

Linda Hamilton
Libérer: 2025-01-03 01:13:45
original
121 Les gens l'ont consulté

How can I efficiently transform XML data into a SQL Server table using Transact-SQL?

Transformation de données XML en table SQL Server

Pour les scénarios de gestion de données impliquant XML, conversion en un format de table structuré pour l'analyse et le traitement peut être nécessaire. Cette tâche peut être accomplie efficacement à l'aide de Transact-SQL (TSQL) dans SQL Server.

Conversion XML en table

Le processus de conversion de données XML en table implique trois approches :

  1. FOR XML PATH : Cette approche utilise la clause FOR XML PATH pour extraire des éléments dans le document XML et créez un ensemble de lignes. Les données sont stockées dans une seule colonne sous forme de structure hiérarchique.
  2. OPENXML : Avec OPENXML, vous pouvez parcourir le document XML à l'aide de la fonction OPENXML. Cette méthode offre plus de contrôle sur la structure de la table générée.
  3. XQuery : l'utilisation d'expressions XQuery dans la fonction XQuery() vous permet d'interroger et de transformer des données XML directement dans SQL Server.

Exemple

Considérez le XML suivant data:

<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>
Copier après la connexion

En appliquant la méthode FOR XML PATH, le code suivant convertit ce XML en table :

DECLARE @xml XML = 
'<root>
    <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>
</root>';

SELECT
    IdInvernadero,
    IdProducto,
    IdCaracteristica1,
    IdCaracteristica2,
    Cantidad,
    Folio
FROM
    @xml.nodes('//row') AS tbl(row)
CROSS APPLY
    tbl.row.query('./@*') AS col(name, value);
Copier après la connexion

La table résultante :

IdInvernadero  IdProducto  IdCaracteristica1  IdCaracteristica2  Cantidad  Folio
----------  ----------  ---------------  ---------------  -------  ------
8               3              8                    8                    25       4568457
3               3              1                    2                    72       4568457
Copier après la connexion

En tirant parti de TSQL, vous pouvez transformer efficacement les données XML en tableaux structurés, permettant ainsi des tâches d'analyse, de manipulation et de reporting des données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal