martedì 3 marzo 2009

Utilizzo della Stored Procedure sp_xml_preparedocument per inserire dati xml

Nel caso si devono gestire dei dati in formato xml la Store Procedure sp_xml_preparedocument ci può tornare utile. L'esempio qui di seguito, illustra l'utilizzo di tale SP, per inserire dei dati in una determinata tabella, con un campo di tipo xml.


Supponiamo di avere una tabella, chiamata TBL_XML, con dei campi Nome e cognome di tipo varchar, code di tipo int data di tipo datetime e codexml di tipo xml, e vogliamo inserire in tale tabella i dati di un file xml, formattato con tali campi. Lo script qui di seguito illustra come inserire i dati contenuti nel file xml in tale tabella. Utilizzando in un primo momento la sp sp_xml_preparedocument e poi tramite openxml, gestire i vari dati.



DECLARE @xmlDoc NVARCHAR(300)

DECLARE @handle INTSET @xmlDoc = N'<ROOT> <TBL_xml>

<Nome>emanuele</Nome>


<cognome>ma</cognome>


<data>12/10/2009</data>


<code>1</code>


<Codexml><pippo>prova</pippo></Codexml>


</TBL_xml>


</ROOT>'


EXEC sp_xml_preparedocument @handle OUTPUT, @xmlDoc


insert TBL_xml


SELECT * FROM OPENXML (@handle, '/ROOT/TBL_xml', 2) WITH


(Nome VARCHAR(50), cognome VARCHAR(50), data datetime, code int, Codexml xml)


EXEC sp_xml_removedocument @handle


select * from TBL_xml

Nessun commento: