Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

BCP exportar datos

Estas en el tema de BCP exportar datos en el foro de SQL Server en Foros del Web. Hola a todos!!! quiero poder exportar datos que genero con un select desde SQL Server 2008, pero nose como hacerlo. lo que tengo que hacer ...
  #1 (permalink)  
Antiguo 07/01/2013, 12:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
BCP exportar datos

Hola a todos!!!

quiero poder exportar datos que genero con un select desde SQL Server 2008, pero nose como hacerlo.

lo que tengo que hacer es exportar un XML que lo genero concatenando strings(tags xml) con datos de una consulta.

lo que no puedo hacer es exportar un simple string a un fichero de preferncia .xml

empecemos desde abajo, mas alla del query, lo q no llego hacer es exportar un string por ejemplo: "hola mundo" a un archivo, como puedo hacer esto con la utilidad BCP.


Saludos!
  #2 (permalink)  
Antiguo 07/01/2013, 12:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: BCP exportar datos

hay instrucciones para el manejo de xml desde sql server, bcp es para exportar datos en formato plano(csv,txt etc) lo que te recomiendos es que hagas un sqlcmd y tengas un query que genere un xml, asi ejecutas el sqlcmd y la salida la mandas a un archivo :)

y como hago esto te preguntaras............tienes una herramienta que se llama internet en donde encuentras de todo solo es cuestion de saber buscar ;)

saludos
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/01/2013, 08:32
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: BCP exportar datos

Libras, gracias por responder.
mira al generar un xml con "for xml raw" y exportarlo con BCP, este archivo xml si lo miro desde un editor de texto, aparece en una sola linea, ejemplo <root><dato=1><dato=2><dato=3></root>.
osea en una sola linea, y lo que yo quiero es q se imprima el retorno de carro(enter) para poder verlo asi
<root>
<dato=1>
<dato=2>
<dato=3>
</root>.

mi aplicacion cliente a la cual no tengo acceso, espera leer el retorno de carro y utilizando FOR XML RAW no lo hace, o talves al exportar con BCP este lo pone todo en una sola linea, si lo abro el archivo con un editor xml si me aparece bien tabulado, eso esporq el editor xml lo hace solo, cuando en realidad no existe el "enter".
viendo esta dificultad, arme un XML mediante una concatenacion y un select, este es el codigo

Código SQL:
Ver original
  1. DECLARE @cadena  VARCHAR(999)
  2.  
  3. SELECT @cadena = '"<fuel_prices>
  4. '
  5. SELECT @cadena = @cadena +
  6. '  <row price_date="' + CONVERT(VARCHAR(8), price_date) + '" price_time="'+ CONVERT(VARCHAR(6), price_time) +'" file_exchange_id="' + CONVERT(VARCHAR(8), file_exchange_id) + '" grade_id="' + CONVERT(VARCHAR(8), grade_id) + '" price_level="' + CONVERT(VARCHAR(8), price_level) + '" ppu="' +  CONVERT(VARCHAR(6),ppu) + '"/>
  7. '
  8.  FROM FusionHO.dbo.precios WHERE ss_id = 71 AND file_exchange_id = 1
  9.  
  10. SELECT @cadena = @cadena + '
  11. </fuel_prices>"'
  12. print @cadena
y esto me arma lo q yo quiero y si lo veo desde un notepad tmb aparece bien tabulado como lo necesito.
la utilidad BCP espera que el comando recibido sea un "select", pero lo que yo le envio es un string que ya tiene el resultado de la consulta, y no me lo toma, entonces, quise probar exportar con BCP una variable string cualquiera, ejemplo "hola" y tampoco eh podido, entonces esa era mi duda, como exportar string con BCP, ya q el resultado que logre es un string.

Última edición por gnzsoloyo; 08/01/2013 a las 14:17
  #4 (permalink)  
Antiguo 08/01/2013, 09:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: BCP exportar datos

desde bcp puedes ejecutar un procedure, porque no pruebas que el bcp en lugar del select reciba un execute procedure??

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/01/2013, 11:51
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: BCP exportar datos

bueno, hice lo que me sugeriste, y realice esto, un procedimiento el cual no adjunte, lo q importa es la salida y la salida(lo probe) esta muy bien

Código SQL:
Ver original
  1. DECLARE @command VARCHAR(999)
  2. DECLARE @varXML  VARCHAR(999)
  3. EXEC proc_create_xml @varXML OUTPUT
  4. SELECT @varXML
  5. SELECT  @Command = 'bcp " exec proc_create_xml varXML OUTPUT " out E:\nuevo.xml -T -c'
  6. EXEC xp_cmdshell @command

y me sale el error "An error occurred while processing the command line."

es asi como debo llamar al procedimiento en BCP???
si uso el RETURN en el procemiento, solo podria devolver un entero, ya que el return solo sirve para devolver un integer del procedimiento. entonces use una variable para traer los datos de vuelta.

ahora me podrias decir si estoy usando bien la sintaxis en BCP


Saludos, gracias!

Última edición por gnzsoloyo; 08/01/2013 a las 14:16
  #6 (permalink)  
Antiguo 08/01/2013, 12:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: BCP exportar datos

creo que si :P

es un queryout para la salida de un query algo asi:

Código SQL:
Ver original
  1. EXEC xp_cmdshell 'bcp "EXEC sp_myproc " queryout "C:\test.txt" -T -c '

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por gnzsoloyo; 08/01/2013 a las 14:16
  #7 (permalink)  
Antiguo 09/01/2013, 09:29
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: BCP exportar datos

Excelente, finalmente funciono.

muchas gracias por tu ayuda!


Saludos!

Etiquetas: bcp, select, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:07.