Importer du contenu XML dans une table SQL serveur

Depuis MS SQL 7, il est possible d’utiliser du XML en résultat de requêtes.  Le “AS XML” n’a sûrement plus de secret pour vous.

Par contre, qu’en est-il de l’importation de fichier au format XML ?  Voici un petit exemple qui vous permettra de démarrer. Faites le évoluer au gré de vos besoins.

 

Le fichier XML est construit comme suit et enregistré dans un fichier : « e:\temp\monfichier.xml »

<?xml version=”1.0″ encoding=”UTF-8″?><root><data><col1>Test1</col1><col2>1</col2><col3>01/05/2015</col3></data><data>

<col1>Test2</col1>

<col2>2</col2>

<col3>02/06/2015</col3>

</data>

</root>

 

Pour tester, j’ai créé “matable” dans la base de données “mabase” comme ceci :

USE [mabase]GO/****** Object: Table [dbo].[matable]   Script Date: 11/06/2015 09:30:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[matable](

[macolonne1] [varchar](10) NULL,

[macolonne2] [int] NULL,

[macolonne3] [date] NULL

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

 

Le query exécuté est celui-ci :

DECLARE @monDocument XMLSELECT @monDocument = BulkColumnFROM OPENROWSET(BULK ‘E:\temp\monfichier.xml’, SINGLE_CLOB) AS XINSERT INTO dbo.matable(macolonne1 ,macolonne2, macolonne3)

SELECT colonne.value(‘./col1[1]’, ‘varchar(10)’),

colonne.value(‘./col2[1]’, ‘int’),

colonne.value(‘./col3[1]’, ‘date’)

FROM @monDocument.nodes(‘/root/data’) TMP_XML (colonne)

Et voilà. A l’exécution du query, les informations sont bien ajoutées à la table.

Je vous laisse en faire une version ‘Update’, une procédure stockée, ….

 

A propos Martial Auroy

Mon goût pour les défis et pour la création m’ont amené à la direction de trois services informatiques. Dans le domaine industriel, dans la gestion de production, dans les ressources humaines et la paie. Créatif et Ingénieur de formation, j’ai pu développer et mettre en place des systèmes informatiques divers. Gestion de paies internationale, appareils de mesure dans les ateliers de l’aérospatiale ou des robots pour la fabrication de cosmétiques. Le Web m’est bien connu. La sécurité et la communication ont toujours été parties intégrantes des projets mis en place : Sécurité d’intrusion, d’accès et de traçabilité.

Je suis curieux et toujours à la recherche de connaissance. J’aime le cinéma, la philosophie, voyager.

Je vous propose également...

Microsoft SQL 2014 est sorti !

Microsoft sort sa dernière version de SQL Server, alors quoi de neuf au niveau des améliorations et la gestion des licences.

Query pour rechercher dans toutes les tables d’une base de données

Cette procédure stockée permet de faire une recherche de chaine dans toutes les colonnes de toutes les tables d'une base de données....

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *