Herramientas de usuario

Herramientas del sitio


informatica:base_de_datos:sql_server:sql_server_xml

SQL SERVER 2012 XML

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