L’importation de XML dans SQL Server avec le composant de chargement en bloc de XML

Résumé

Les données exprimées en XML peuvent être chargées dans une base de données Microsoft SQL Server 2000 en utilisant le composant de chargement en bloc de XML. Cet article décrit les étapes que vous devez suivre pour charger des données XML dans une table qui existe déjà dans la base de données.

Remarque Si vous utilisez Microsoft SQL Server 2005, consultez la rubrique « Exemples de chargement en bloc XML » dans la documentation en ligne de SQL Server 2005.

Configuration requise

Pour utiliser les étapes de cet article, vous devez avoir :
  • Web version 1 du schéma XML pour SQL Server 2000 (SQLXML), ou une version ultérieure.
Connaissances préalables requises :
  • Des connaissances en XML.

Créer table pour recevoir les données

Utilisez les étapes suivantes pour créer une table pour recevoir les données que le composant de chargement en bloc de XML traite.
  1. Créer une base de données nommée MyDatabase dans SQL Server.
  2. Ouvrez l'Analyseur de requêtes SQL et choisissez la base de données MyDatabase.
  3. Créer une table Customer dans MyDatabase en exécutant l'instruction SQL suivante dans l'Analyseur de requêtes :
    USE MyDatabaseCREATE TABLE Customer (
    CustomerId INT PRIMARY KEY,
    CompanyName NVARCHAR(20),
    City NVARCHAR(20))


Créer le fichier de source de données XML

Il s’agit de l’exemple de code de source de données. Collez ce code XML dans le bloc-notes, puis enregistrez le fichier sous C:/Customers.xml.
<ROOT>  <Customers>
<CustomerId>1111</CustomerId>
<CompanyName>Sean Chai</CompanyName>
<City>NY</City>
</Customers>
<Customers>
<CustomerId>1112</CustomerId>
<CompanyName>Tom Johnston</CompanyName>
<City>LA</City>
</Customers>
<Customers>
<CustomerId>1113</CustomerId>
<CompanyName>Institute of Art</CompanyName>
</Customers>
</ROOT>


Créer le fichier de schéma de mappage

Le fichier suivant est un fichier qui vous permet de mapper le format de la source de données XML au format de la table Customer dans la base de données. Collez ce code XML dans le bloc-notes, puis enregistrez le fichier sous C:/Customermapping.xml.
<?xml version="1.0" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data" 
xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >

<ElementType name="CustomerId" dt:type="int" />
<ElementType name="CompanyName" dt:type="string" />
<ElementType name="City" dt:type="string" />

<ElementType name="ROOT" sql:is-constant="1">
<element type="Customers" />
</ElementType>

<ElementType name="Customers" sql:relation="Customer">
<element type="CustomerId" sql:field="CustomerId" />
<element type="CompanyName" sql:field="CompanyName" />
<element type="City" sql:field="City" />
</ElementType>

</Schema>


Créer un programme VBScript pour exécuter le composant de chargement en bloc de XML

C’est le script qui utilise le composant de chargement en bloc de XML pour insérer les trois enregistrements que vous avez créé dans la rubrique « Créer la Source fichier de données XML » dans la table que vous avez créé dans la rubrique « Créer pour recevoir les données de la Table » en utilisant le schéma de mappage décrit dans la rubrique « Créer le fichier de schéma de mappage ». Collez ce code VBScript dans le bloc-notes, puis enregistrez le fichier sous C:\Insertcustomers.vbs.
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MySQLServer;database=MyDatabase;uid=MyAccount;pwd=MyPassword"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\customermapping.xml", "c:\customers.xml"
Set objBL = Nothing

Corrigez les informations d’identification de ConnectionString sur la deuxième ligne du code afin que le script puisse fonctionner avec votre installation de SQL Server. Si vous ne corrigez pas la ligne 2, le message d’erreur suivant se produit après l’exécution du script :
Erreur de connexion à la source de données

Exécutez le programme VBScript

Exécutez le programme VBScript C:\Insertcustomers.vbs pour insérer les enregistrements de trois clients dans la table Customer .

Vérifiez qu’il fonctionne.

Dans l’Analyseur de requêtes SQL, basculez vers la base de données MyDatabase , puis exécutez cette requête :
SELECT * FROM Customer
Notez que les trois enregistrements créés dans la rubrique « Créer le fichier de source de données XML » sont à présent dans la table client .

Autre technique

Le composant de chargement en bloc de XML est en mesure de :
  • Mappage d’un document XML à des tables multiples à l’aide d’une relation est spécifiée dans le fichier de schéma XML.
  • Génération de schémas de table avant le chargement en bloc.
  • Mode bulk, chargement à partir d’un flux de données.
  • Mode bulk, chargement dans les colonnes de dépassement de capacité.



RÉFÉRENCES

SQLXML documentation en ligne ; rubrique : « Exécution en bloc charge de données XML »

Propriétés

ID d'article : 316005 - Dernière mise à jour : 9 janv. 2017 - Révision : 1

Commentaires