SQL Server - exportar campo xml

   
Vista:

exportar campo xml

Publicado por jose luis jrivera@acreimex.com.mx (3 intervenciones) el 27/09/2017 19:24:19
hola buenas tardes, tengo una tabla con un campo xml, quiero exportar ese xml, tengo una consulta con mas de 17mil resultados y es muy laborioso darle clic en cada uno y guardarlo individualmente, es posible hacerlo masivamente, es decir, que sql server me exporte todos y cada uno de los campos xml en archivos separados a mi disco local.

Gracias, si no me explique disculpenme por favor, quedo al pendiente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

exportar campo xml

Publicado por Isaias (3669 intervenciones) el 27/09/2017 19:55:37
SQL SERVER, de acuerdo, ¿Que VERSION-EDICION?

¿Entiendo que cada campo XML lo quieres en un ARCHIVO (¿texto?) en una carpeta de tu disco?

Espero comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

exportar campo xml

Publicado por jose luis (3 intervenciones) el 27/09/2017 20:07:10
si es sql server 2014, y si lo que requiero es que cada registro del campo xmldata se exporte a un archivo.xml en una carpeta en mis documentos por ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

exportar campo xml

Publicado por Isaias (3669 intervenciones) el 27/09/2017 20:35:48
Analiza el siguiente ejemplo y modificalo para tus necesidades, comenta si te fue util

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-- Declaro una tabla de usese y tirese
DECLARE @REFERENCES table (ID int,SomeXml xml);
-- Inserto algunos registros
INSERT INTO @REFERENCES  values
 (100,'<root><test a="1"/></root>')
,(200,'<root><test a="2"/></root>')
,(300,'<root><test a="3"/></root>');
 
-- Declaro algunas variables de uso
DECLARE @fileName VARCHAR(50)
DECLARE @sqlStr VARCHAR(100)
DECLARE @sqlCmd VARCHAR(2000)
DECLARE @id int
-- Creo un cursor con mis datos
DECLARE myCursor CURSOR FOR
    SELECT ID FROM @REFERENCES
-- Abro el ciclo de lectura de mis registros
OPEN myCursor
FETCH NEXT FROM myCursor
INTO @id
 
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @fileName = 'C:\TEMP\' + CAST(@id AS VARCHAR(10)) + '.xml'  -- Ruta donde quedaran los achivos XML
	-- En la siguienet linea cambiar MyServer y MyDatabase
    SET @sqlStr = 'SELECT ID FROM MyServer.MyDatabase.dbo.@REFERENCES WHERE ID = ' + CAST(@id AS VARCHAR(10))
    SET @sqlCmd = 'BCP "' + @sqlStr + '" queryout ' + @fileName + ' -w -T'
	-- Exporto a mi archivo a nivel file system
	SELECT @sqlCmd
    EXEC xp_cmdshell @sqlCmd
END
-- Termino, cierro el cursor y lo desalojo de la memoria
CLOSE myCursor;
DEALLOCATE myCursor;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

exportar campo xml

Publicado por jose luis (3 intervenciones) el 03/10/2017 16:42:27
excelente, muchisimas gracias, solo falto agregar FETCH NEXT FROM myCursor entre la linea 30 y 31
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

exportar campo xml

Publicado por Isaias (3669 intervenciones) el 03/10/2017 22:50:28
Muchas gracias por la observacion

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad