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, ….