Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/01/2013, 08:32
anibal_s87
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 12 años, 9 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