none
CONSULTA SQL EXPORTAR ARCHIVO CSV RRS feed

  • Pregunta

  • Estimados buenos días, tengo una tabla que se llama alumnos2017, la cual necesito que a través de una consulta, pueda exportar aun archivo CSV los resultados de la consulta select * from alumnos2017 where año=2017, espero su apoyo.
    lunes, 4 de diciembre de 2017 13:47

Respuestas

  • Te ubicas en la BBDD y das click derecho y seleccionas Task y luego Export Data, a partir de ese punto seleccionas un origen y como formato de destino un CSV.

    Si ya requieres el uso de BCP y otras opciones mas avanzadas, puedes comenzar por aqui:

    https://docs.microsoft.com/es-es/sql/relational-databases/import-export/bulk-import-and-export-of-data-sql-server


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    lunes, 4 de diciembre de 2017 14:12
  • Con un query es un poco complicado, puedes hacer un servicio de Integration Services para que lo haga.

    Puedes hacer una exportación con el wizard de SQL y ese mismo te da la opción de generar un SSIS, y pues luego ya lo pones en un job para que lo mandes ejecutar.

    DE TODAS FORMAS AQUI ESTÁ UN EJEMPLO EN SQL-T A VERTS COMO TE VA

    --╔═════════════════════════════════════════════╗
    --║ GENERA UN TIPO BINARIO O EN SQL (VARBINARY)	║
    --║ Y GUARDARLO EN UN DIRECTORIO EN WINDOWS		║
    --╚═════════════════════════════════════════════╝
    
    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO
    EXEC sp_configure 'Ole Automation Procedures',1;  
    GO 
    RECONFIGURE;  
    GO
    
    
    DECLARE @outPutPath VARCHAR(50) = 'C:\BASURA\test.txt'
    DECLARE @data		VARBINARY(MAX)
    DECLARE @Init		INT
    DECLARE @fPath		VARCHAR(MAX) 
    DECLARE @folderPath	VARCHAR(MAX)
    
    SELECT		@Data = convert(varbinary,'hola, este query baja a un txt ésta cadena');
    
    
    
    EXEC sp_OACreate 'ADODB.Stream', @init OUTPUT;				-- An instace created
    EXEC sp_OASetProperty @init, 'Type', 1; 
    EXEC sp_OAMethod @init, 'Open';								-- Calling a method
    EXEC sp_OAMethod @init, 'Write', NULL, @data;				-- Calling a method
    EXEC sp_OAMethod @init, 'SaveToFile', NULL, @outPutPath, 2; -- Calling a method
    EXEC sp_OAMethod @init, 'Close';							-- Calling a method
    EXEC sp_OADestroy @init;									-- Closed the resources
    GO----------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    

    CAMBIA LA RUTA DE LA CARPETA


    saludos

    lunes, 4 de diciembre de 2017 19:18
  • Estaba buscando lo mismo y topé con tu pregunta. Sobre todo porque quiero exportar múltiples tablas y usar el asistente de importación y exportación iba a ser muy cansado.

    Le di la vuelta usando R para importar los datos haciendo la consulta y luego exportarlos a CSV.

    # Instalar los paquetes, no recuerdo cual es para las consultas# library(DBI) library(odbc) library(RODBC) # Conectar con la BD # con <-DBI:: dbConnect(odbc::odbc(), Server=[], Database=[], UID=[usuario], PWD=[pass], Driver="SQL Server Native Client 11.0", DBMSencoding = "UTF-8" , encoding = 'latin1') # Importar los datos con una consulta # alumnos2017 <- DBI::dbGetQuery(con,"SELECT * FROM alumnos2017 where año=2017; ")

    # Cerrar coneccion con SQL #

    DBI::dbDisconnect(con)

    rm(con)

    # Exportar tabla a CSV #

    write.csv(alumnos2017, file = "C:/alumnos2017.csv")

    Espero te sea útil, 

    Saludos!!

    viernes, 10 de agosto de 2018 23:03

Todas las respuestas

  • Te ubicas en la BBDD y das click derecho y seleccionas Task y luego Export Data, a partir de ese punto seleccionas un origen y como formato de destino un CSV.

    Si ya requieres el uso de BCP y otras opciones mas avanzadas, puedes comenzar por aqui:

    https://docs.microsoft.com/es-es/sql/relational-databases/import-export/bulk-import-and-export-of-data-sql-server


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    lunes, 4 de diciembre de 2017 14:12
  • Con un query es un poco complicado, puedes hacer un servicio de Integration Services para que lo haga.

    Puedes hacer una exportación con el wizard de SQL y ese mismo te da la opción de generar un SSIS, y pues luego ya lo pones en un job para que lo mandes ejecutar.

    DE TODAS FORMAS AQUI ESTÁ UN EJEMPLO EN SQL-T A VERTS COMO TE VA

    --╔═════════════════════════════════════════════╗
    --║ GENERA UN TIPO BINARIO O EN SQL (VARBINARY)	║
    --║ Y GUARDARLO EN UN DIRECTORIO EN WINDOWS		║
    --╚═════════════════════════════════════════════╝
    
    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO
    EXEC sp_configure 'Ole Automation Procedures',1;  
    GO 
    RECONFIGURE;  
    GO
    
    
    DECLARE @outPutPath VARCHAR(50) = 'C:\BASURA\test.txt'
    DECLARE @data		VARBINARY(MAX)
    DECLARE @Init		INT
    DECLARE @fPath		VARCHAR(MAX) 
    DECLARE @folderPath	VARCHAR(MAX)
    
    SELECT		@Data = convert(varbinary,'hola, este query baja a un txt ésta cadena');
    
    
    
    EXEC sp_OACreate 'ADODB.Stream', @init OUTPUT;				-- An instace created
    EXEC sp_OASetProperty @init, 'Type', 1; 
    EXEC sp_OAMethod @init, 'Open';								-- Calling a method
    EXEC sp_OAMethod @init, 'Write', NULL, @data;				-- Calling a method
    EXEC sp_OAMethod @init, 'SaveToFile', NULL, @outPutPath, 2; -- Calling a method
    EXEC sp_OAMethod @init, 'Close';							-- Calling a method
    EXEC sp_OADestroy @init;									-- Closed the resources
    GO----------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    

    CAMBIA LA RUTA DE LA CARPETA


    saludos

    lunes, 4 de diciembre de 2017 19:18
  • Estaba buscando lo mismo y topé con tu pregunta. Sobre todo porque quiero exportar múltiples tablas y usar el asistente de importación y exportación iba a ser muy cansado.

    Le di la vuelta usando R para importar los datos haciendo la consulta y luego exportarlos a CSV.

    # Instalar los paquetes, no recuerdo cual es para las consultas# library(DBI) library(odbc) library(RODBC) # Conectar con la BD # con <-DBI:: dbConnect(odbc::odbc(), Server=[], Database=[], UID=[usuario], PWD=[pass], Driver="SQL Server Native Client 11.0", DBMSencoding = "UTF-8" , encoding = 'latin1') # Importar los datos con una consulta # alumnos2017 <- DBI::dbGetQuery(con,"SELECT * FROM alumnos2017 where año=2017; ")

    # Cerrar coneccion con SQL #

    DBI::dbDisconnect(con)

    rm(con)

    # Exportar tabla a CSV #

    write.csv(alumnos2017, file = "C:/alumnos2017.csv")

    Espero te sea útil, 

    Saludos!!

    viernes, 10 de agosto de 2018 23:03