ARTICLE

How to Read XML file and XML String through SQL Stored Procedure

Posted by Vivek Srivastava Articles | SQL December 10, 2010
In this article I will explain reading XML data from XML String \ XML File through SQL Stored Procedure.
Reader Level:


Objective

In this article I will explain reading XML data from XML String \ XML File through SQL Stored Procedure.

Stored Procedure for reading XML File.

There is a XML file TestXML.xml which contains following XML data.

<DataSet>
  <
tblEmp>
    <
name>Vishal</name>
    <designation>Developer</designation>l
  </tblEmp>
  <
tblEmp>
    <
name>Jibin</name>
    <designation>System Analyst</designation>l
  </tblEmp>
</
DataSet>

SQL Stored Procedure to read XML File

CREATE PROC [dbo].[USP_READXMLFILE]   

AS     

 /*     

  EXEC [USP_READXMLFILE]

 */     

  BEGIN     

        SET NOCOUNT ON     

                   

        DECLARE @HANDLE INT      

       

        DECLARE @SQUERY VARCHAR(1000)

        DECLARE @XMLDOC XML 

       

        SET @XMLDOC = (SELECT * FROM OPENROWSET

                      (BULK 'd:\TestXML.xml', SINGLE_CLOB) AS XMLDATA)

                       SELECT @XMLDOC

       

                   

        EXEC SP_XML_PREPAREDOCUMENT  @HANDLE OUTPUT,@XMLDOC     

 

        SELECT * FROM OPENXML(@HANDLE, '/XMLData/tblEmp', 2)      

        WITH (name VARCHAR(50),designation VARCHAR(50))
 
  END 
Stored Procedure for reading data from XML String.

XML String


<DataSet>
  <
tblEmp>
    <
name>Vishal</name>
    <designation>Developer</designation>l
  </tblEmp>
  <
tblEmp>
    <
name>Jibin</name>
    <designation>System Analyst</designation>l
  </tblEmp>
</
DataSet>

Stored Procedure to read XML string
 

CREATE PROC [dbo].[USP_READXMLString]   

(     

   @XMLDOC2    XML     

)     

AS     

   BEGIN     

         SET NOCOUNT ON     

        

         DECLARE @HANDLE INT      

        

         EXEC SP_XML_PREPAREDOCUMENT  @HANDLE OUTPUT,@XMLDOC2     

         SELECT * FROM OPENXML(@HANDLE, '/DataSet/tblEmp', 2)      

         WITH (name VARCHAR(50),designation VARCHAR(50))

END  
Thanks for reading …

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Join a Chapter
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Join a Chapter