OPENXML y archivos XML

01/11/2006 - 20:33 por devhi0000 | Informe spam
Hola.

Mi inquietud es la siguiente: He usado OPENXML para leer XML que se lo puede
almacenar en una variable. Sin embargo, si el tamaño del XML supera el tipo
VARCHAR, ya no se puede hacerlo. Necesito saber sin con OPENXML puedo usar
como origen de datos un archivo XML que está en el disco duro, o en su lugar,
que otra alternativa tengo para lograr el mismo resultado.

!!! GRACIAS ¡¡¡¡¡

Preguntas similare

Leer las respuestas

#6 devhi0000
07/11/2006 - 14:21 | Informe spam
Claro

La idea básica es encontrar una forma automatizada de subir masivamente
datos a tablas SQL SRV 2005 Express a partir de archivos XML. El proceso de
subida de datos se lanza desde una aplicación hecha en Visual Foxpro 9.

Se piesa usar un SP como el siguiente para poblar la tabla Rec_Tv de SQL SRV
2005 a partir de un archivo XML. El SP LeerXML es un prototipo, no está
completo, pero contiene los pasos iniciales en los que tengo problemas. A
este SP hay que enviarle como parámetro el contenido del archivo XML.
Inicialmente el contenido del archivo XML se sube en una tabla comodin de
nombre T la cual tiene la columna XMLcol de tipo XML. El proceso se puede
organizar en los siguientes pasos:

0) Extracto del contenido del archivo XML:
<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<VFPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="CURREC_TVConEsquemaExterno_CentradoAtributos_VFP.xsd">
<currec_tv dimemp="ML" nro_sol="32" mucipio="LA ROSALINA" nom_sol="PEPITO"
fec_sol="2001-01-02" hor_sol="1:55p" fec_rec="2001-01-03" hor_rec="4:45p"
muestra="1" laborat="6849" semana="1" analisis="TV" cultivo="01"
variedad="01070" />
<currec_tv dimemp="ML" nro_sol="33" mucipio="LA ROSALINA" nom_sol="PEPITO"
fec_sol="2001-01-22" hor_sol="3:19p" fec_rec="2001-01-24" hor_rec="10:8a"
muestra="1" laborat="6922" semana="4" analisis="TV" cultivo="01"
variedad="01005" />
</VFPData>


1) Para poblar la tabla con el contenido del archivo XML:

delete from t
INSERT INTO T(XmlCol)
SELECT * FROM OPENROWSET(
BULK 'E:\Chia\2006\CURREC_TVConEsquemaExterno_CentradoAtributos_VFP.xml',
SINGLE_BLOB) AS x
select * from t

2) Ejecutar el SP LeerXML y pasarle como parámetro la columna T.XMLcol
Esto es lo que no sé cómo hacer
..


3) Este es el contenido del SP LeerXML

ALTER PROCEDURE [dbo].[LeerXML]
@xmlDocument TEXT

AS
BEGIN
SET NOCOUNT ON

DECLARE @docHandle int

EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmlDocument

DECLARE @nTipoXML_Atributos int
DECLARE @nTipoXML_Elementos int
DECLARE @nTipoXML_Mixto int
DECLARE @nTipoXML int

set @nTipoXML_Atributos = 1 -- Los datos están como atributos <currectv>
muestra="1" nom_sol="pepito" <currectv>
set @nTipoXML_Elementos = 2 --Los datos están como en forma de elementos
XML <muestra>1</muestra>
set @nTipoXML_Mixto = 3 -- Los datos están como en forma mixta como
atributos y elementos(etiquetas)

set @nTipoXML = @nTipoXML_Atributos -- Definir el tipo de XML a procesar.

SELECT *
FROM OPENXML (@docHandle, '/VFPData/currec_tv', @nTipoXML)
WITH Rec_tv

EXEC sp_xml_removedocument @docHandle

END




GRACIAS...





"Maxi" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida