informatica:base_de_datos:sql_server:sql_server_xml
Tabla de Contenidos
SQL SERVER 2012 XML
Consultas al XML https://stackoverflow.com/questions/10344553/how-can-i-query-a-value-in-sql-server-xml-column
https://www.red-gate.com/simple-talk/sql/learn-sql-server/the-xml-methods-in-sql-server/
https://www.sqlshack.com/working-with-xml-data-in-sql-server/
https://www.c-sharpcorner.com/UploadFile/rohatash/openxml-function-in-sql-server-2012/
https://sqlwithmanoj.com/2011/07/13/select-or-query-nodes-in-hierarchial-or-nested-xml/
Graba el archivo XML
https://stackoverflow.com/questions/1803911/generating-xml-file-from-sql-server-2008
XML
SELECT CONVERT(XML, BulkColumn) AS BulkColumn FROM OPENROWSET(BULK 'D:\BK\MCI_0403_5767_0536275007.XML', SINGLE_BLOB) AS XML
Ejemplo para abrir XML.html de un archivo: del file to XML:
SELECT * FROM OPENROWSET (BULK 'C:\enviosEERS01Alias_alias_235_-_2019_-_8607.htm', SINGLE_CLOB) AS xCol
--INSERT INTO T SELECT 10, xCol FROM (SELECT * FROM OPENROWSET (BULK 'C:\MyFile\xmlfile.xml', SINGLE_CLOB) AS xCol) AS R(xCol);
Ejemplo
SELECT CAST( CAST (('<?xml version="1.0" encoding="iso8859-1"?>'+ vcdoc) AS VARBINARY (MAX)) AS XML);
Usando sp_xml_preparedocument
DECLARE @idoc INT, @doc VARCHAR(1000); SET @doc =' <ROOT> <Customer CustomerID="VINET" ContactName="Paul Henriot"> <Order OrderID="10248" CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00"> <OrderDetail ProductID="11" Quantity="12"/> <OrderDetail ProductID="42" Quantity="10"/> </Order> </Customer> <Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">v <Order OrderID="10283" CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00"> <OrderDetail ProductID="72" Quantity="3"/> </Order> </Customer> </ROOT>'; --Create an internal representation of the XML document. EXEC sp_xml_preparedocument @idoc OUTPUT, @doc; -- SELECT stmt using OPENXML rowset provider SELECT * FROM OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2) WITH (OrderID INT '../@OrderID', CustomerID VARCHAR(10) '../@CustomerID', OrderDate datetime '../@OrderDate', ProdID INT '@ProductID', Qty INT '@Quantity');
XML Convert
da error:
DECLARE @doc xml SELECT @doc = (CAST x AS xml) FROM OPENROWSET(BULK 'ruta', SINGLE_BLOB) AS T(x) SELECT @doc = CONVERT(xml, x, 2) FROM OPENROWSET(BULK 'ruta', SINGLE_BLOB) AS T(x)
Entrando a los NODOS
DECLARE @x XML SET @x='<Root> <row id="1"><name>Larry</name><oflw>some text</oflw></row> <row id="2"><name>moe</name></row> <row id="3" /> </Root>' SELECT T.c.query('.') AS RESULT FROM @x.nodes('/Root/row') T(c) GO
informatica/base_de_datos/sql_server/sql_server_xml.txt · Última modificación: 2025/04/18 05:50 por admin