To read the XML file in SQL we need to use sp_xml_preparedocument and :
Syntax
sp_xml_preparedocument
hdoc OUTPUT -- Is the handle to the newly created document. hdoc is an integer.
[ , xmltext ] -- original XML document.
[ , xpath_namespaces ]
Example
DECLARE @hdoc INT,
@params_xml XML = ' '
EXEC sp_xml_preparedocument @hdoc OUTPUT, @params_xml
The above command, reads the XML text provided as input, parses the text by using the MSXML parser
sp_xml_preparedocument returns a handle that can be used to access the newly created internal representation of the XML document. This handle is valid for the duration of the session or until the handle is invalidated by executing sp_xml_removedocument.
A parsed document is stored in the internal cache of SQL Server. The MSXML parser uses one-eighth the total memory available for SQL Server. To avoid running out of memory, run sp_xml_removedocument to free up the memory.
PUT XML into variables OPENXML provides a rowset view over an XML document.
Syntax:
OPENXML( idoc int [ in] , rowpattern nvarchar [ in ] , [ flags byte [ in ] ] )
[ WITH ( SchemaDeclaration
TableName ) ]
SELECT @case_id = isnull(CaseID,'1') , @case_id = isnull(CaseID,'1') ,
@noteType_id = isnull(NoteType_Id,'1')
FROM OPENXML(@hdoc, '/Data', 1)
WITH (
CaseID int,
NoteType_Id int
)
select @edocnote_andor = value
FROM OPENXML(@hdoc, '//Data/ANDOR',0)
WITH (value varchar(5))
These Variables can now be used as regular variables in SQL.
To avoid running out of memory, run :
exec sp_xml_removedocument @hdoc
Syntax
sp_xml_preparedocument
hdoc OUTPUT -- Is the handle to the newly created document. hdoc is an integer.
[ , xmltext ] -- original XML document.
[ , xpath_namespaces ]
Example
DECLARE @hdoc INT,
@params_xml XML = '
EXEC sp_xml_preparedocument @hdoc OUTPUT, @params_xml
The above command, reads the XML text provided as input, parses the text by using the MSXML parser
sp_xml_preparedocument returns a handle that can be used to access the newly created internal representation of the XML document. This handle is valid for the duration of the session or until the handle is invalidated by executing sp_xml_removedocument.
A parsed document is stored in the internal cache of SQL Server. The MSXML parser uses one-eighth the total memory available for SQL Server. To avoid running out of memory, run sp_xml_removedocument to free up the memory.
PUT XML into variables OPENXML provides a rowset view over an XML document.
Syntax:
OPENXML( idoc int [ in] , rowpattern nvarchar [ in ] , [ flags byte [ in ] ] )
[ WITH ( SchemaDeclaration
TableName ) ]
SELECT @case_id = isnull(CaseID,'1') , @case_id = isnull(CaseID,'1') ,
@noteType_id = isnull(NoteType_Id,'1')
FROM OPENXML(@hdoc, '/Data', 1)
WITH (
CaseID int,
NoteType_Id int
)
select @edocnote_andor = value
FROM OPENXML(@hdoc, '//Data/ANDOR',0)
WITH (value varchar(5))
These Variables can now be used as regular variables in SQL.
To avoid running out of memory, run :
exec sp_xml_removedocument @hdoc
Comments
Post a Comment