Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
¿Cómo se genera un archivo plano (.txt) de un Select por medio de un Query en SQL server?
Enviado por jfredy el día 18 de diciembre de 2005
Hola amigos, tengo una pregunta y no es tan complicada pero yo no sé cómo serealiza, necesito que alguien me ayude con un query en SQL Sever para generar un archivo plano (*.txt) de una tabla seleccionada cualquiera.
Para publicar este archivo de texto por FTP y descargar desde el WEB Site, Gracias al que me pueda responder con la mayor brevedad posible.
Un compañero del foro me respondión que con la sentencia UNLOAD .. TO, pero ésta funciona es para Oracle, porque en SQL server genera errores.
la gracia esta en los parametros -i y -o .... el -i indicas el script con la sentencia sql y el parametro -o das el nombre al archivo de salida con el resultado de tu query
Ejemplo de genera.sql (lo puedes crear con culaquier editor)
use TUBASE
go
select col1,col2,col3,..... from TUTABLA where......
go
Para que te funcione este utilitario debes de tener instalado el Client SQL Server en tu maquina.
Ahora si quisieras automatizar esta tarea, basta con que crees un JOB en el SQL Agent y lo agendas para que se ejecute cuando lo necesites
Re: Re: ¿Cómo se genera un archivo plano (.txt) de un Select por medio de un Query en SQL
Enviado por monky el día 19 de diciembre de 2005
Se me olb¡vidaba decirte que existe otra forma.... usando el utilitario BCP (bulk copy).... lo que debes hacer para generar el archivo es primero crear una vista con la query que necesita y luego por consola MSDOS (cmd.exe) ejecutas un BCP con parametro de salido -osalida.txt.... investiga este utilitario
Re: Re: ¿Cómo se genera un archivo plano (.txt) de un Select por medio de un Query en SQL
Enviado por jfredy el día 19 de diciembre de 2005
ya probé esa sintaxis en MSDOS pero no funcionó, aunque debe haber una forma sencilla de generar ese el archivo plano a través de una sentencia SQL no? no sé si con UNLOAD funcionará porque lo probé y me generó error, te gradezco si lo sabes manejar para que me des una mano, Gracias men...
Re: Re: Re: ¿Cómo se genera un archivo plano (.txt) de un Select por medio de un Query en
Enviado por GabrielSR2004 el día 19 de diciembre de 2005
/*********************************************************************/
/*********************************************************************/
/******* Te Paso un Ejemplo de como Realizar el ******/
/******** Respaldo y la Recuperación del Mismo *******/
/*********************************************************************/
/*********************************************************************/
1) Ruta donde se dejara la información de la Tabla que esta en SQL-Server
2) Nombre de la Tabla en SQL-Server
3) Nombre con el que quieres que se quede el archivo de Text
4) Usuario con derechos de Admin
5) Password del usuario
6) Nombre de la BD del Servidor
Ejemplo
El ejecutar el procedimiento
SP_Resp_Tabla_Disco
Respaldara la tabla a TXT
El ejecutar el procedimiento
SP_Recupera_TxT_BD
Sube la información de TXT a SQL-Server
Los parametros que tiene el BCP son para que la tabla ya exista en
el servidor en el que subiras la tabla txt.
Si quieres que se cree te lo dejo de tare
*/
If Exists(Select *
From Sysobjects
Where Name = 'SP_Resp_Tabla_Disco')
Drop Proc SP_Resp_Tabla_Disco
Go
Create Proc SP_Resp_Tabla_Disco
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)
If Exists(Select *
From Sysobjects
Where Name = 'SP_Recupera_TxT_BD')
Drop Proc SP_Recupera_TxT_BD
Go
Create Proc SP_Recupera_TxT_BD
@Ruta Varchar(100),
@TablaSQL Varchar(100),
@NomArchTXT Varchar(100),
@Login Varchar(100),
@Password Varchar(100),
@NomBD Varchar(100)
AS
Begin
Declare
@Text1 Varchar(100),
@Text2 Varchar(100),
@result Int,
@Bodega Varchar(10)
¿Cómo se genera un archivo plano (.txt) de un Select desde el Query Analizer??
Enviado por jfredy el día 20 de febrero de 2006
Hola Gabriel:
la verdad te agradezco bastante el aporte me ha dado una idea al respecto, pero he tenido problemas tal vez con el BCP.
Es que la problematica es la diguiente: necesito filtrar una informacion de diferentes tablas y con ello generar un archivo plano con unas especificaciones, que son las siguientes:
El archivo .txt, debe estar compuesto por tres tipos de registros:
1. ENCABEZADO: se concatenan, fecha de generacion del archivo txt, nombre del archivo incluyendo la extension .txt (NOM_REGISTRO.txt) y debe coincidir con el nombre externo del mismo archivo y completarse con ceros hasta el tamaño maximo del registro por ej = 143 caracteres (de encabezado es sólo un registro, nada más)
2. DETALLE: Acá se concatenan los campos que se extrayeron del Join o select, de esta manera:
Registro1: campo1+campo2+campo3+...+campoN=143 caracteres
Registro2: campo1+campo2+campo3+...+campoN=143 caracteres
.
.
RegistroM: campo1+campo2+campo3+...+campoN=143 caracteres
De registro detalle la cantidad de registros es M, dependiendo de cuantos extraiga el select y/o Join.
3. TOTALES: se concatenan algunos totales, por ej:
cant registr=M+total ventas+totalporcentajes+etc o ceros.... = 143 caracteres; la cantidad de registros totales es 1al igual que el encabezado
En cada registro se concatenan los campos especificos, y deben sumar la misma cantidad de caracteres, por ej. 143, y cada campo a concatenar tiene un tamaño especifico y si no es completado se rellena o con ceros a la izquierada si es numerico el campo a concatenar, o con espacios a la derecha si es alfanumerico.
de esta manera quedaria conformado el archivo por ej: NOMBREAAAAMMDD.txt que debe coincidir su nombre externo con la fecha de generacion y el nombre interno (nombre que esta en el registro encabezado), esto debe ser en SQL server, tengo una solucion en Oracle pero es total mente diferente a la sintaxis en SQL server, no se si me pueden ayudar
Mucha Gracias!
Re: ¿Cómo se genera un archivo plano (.txt) de un Select desde el Query Analizer??
Enviado por Ing Handal el día 10 de mayo de 2006
Señores esta muy bien si yo quiero copiar ese archivo en una maquina dentro de la Red, Pero si necesito copiarlo en un FTP que esta en Internet como lo Hariamos???