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

Enviar consulta a un txt

Estas en el tema de Enviar consulta a un txt en el foro de Mysql en Foros del Web. Tengo que enviar la siguiente consulta a un archivo .txt: SELECT locs.cp AS CP, locs.nomloc AS Localidad, provs.nomprov AS Provincia FROM locs, provs WHERE locs.codprov ...
  #1 (permalink)  
Antiguo 30/05/2008, 11:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 16 años
Puntos: 0
Enviar consulta a un txt

Tengo que enviar la siguiente consulta a un archivo .txt:

SELECT locs.cp AS CP, locs.nomloc AS Localidad, provs.nomprov AS Provincia FROM locs, provs WHERE locs.codprov = provs.codprov ORDER BY locs.nomloc;

La sentencia hasta aquí funciona bien, pero no se como continuarla para crear un .txt donde me muestre la informacion requerida.

he probado con exportar y entre las opciones de formatos figura un CSV, pero la envia a excel.
  #2 (permalink)  
Antiguo 31/05/2008, 08:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Enviar consulta a un txt

La opción buena es CSV (coma seperated values) que es como su extensión indica un fichero con los valores separados por comas, no es mas que un fichero de texto con el resultado de la consulta, no es que lo mande a excel si no que windows tiene asociada esta extensión con el excel y sabe abrirlo como si fuera una hoja de calculo.

No se si existe alguna forma, sin programación para obtener un fichero de texto columnado, que es lo que supongo que estas buscando.

Quim
  #3 (permalink)  
Antiguo 31/05/2008, 08:48
Avatar de DBMark  
Fecha de Ingreso: mayo-2008
Ubicación: Oxford
Mensajes: 35
Antigüedad: 16 años
Puntos: 6
Respuesta: Enviar consulta a un txt

La sintaxis para hacer esto (?) :
SELECT locs.cp AS CP, locs.nomloc AS Localidad, provs.nomprov AS Provincia
INTO OUTFILE '~/archivo.text'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
FROM locs, provs WHERE locs.codprov = provs.codprov ORDER BY locs.nomloc;

Asi se puede crear archivo.txt

Pero si quieres guardar una consulta SQL en un fichero de Linux se puede hacer esto:

\! echo 'select * from emp where job ="salesman" ' > test2.sql

Con \! se puede hacer varios comandos de command line. Por ejemplo

\! rm test2.sql

\! cat test1.sql
  #4 (permalink)  
Antiguo 31/05/2008, 13:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 47
Antigüedad: 16 años
Puntos: 0
Respuesta: Enviar consulta a un txt

Muchas gracias DBMark.
  #5 (permalink)  
Antiguo 01/06/2008, 05:03
Avatar de DBMark  
Fecha de Ingreso: mayo-2008
Ubicación: Oxford
Mensajes: 35
Antigüedad: 16 años
Puntos: 6
Respuesta: Enviar consulta a un txt

Un placer, Okan

Acabo de encontrar otra manera de almacenar los resultados de consultas en un fichero de sistema operativo. Primero se entra \T y el nombre del fichero. Luego, para desactivar entra \t Es como "Spool" en Oracle.
Por ejemplo:

Cita:
mysql> \T tmp.lst
Logging to file 'tmp.lst'
mysql> select * from emp;
+-------+--------+-----------+------+------------+------+------+--------+
| empno | ename | job | mgr | hiredate | sal | comm | deptno |
+-------+--------+-----------+------+------------+------+------+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-02-17 | 800 | NULL | 20 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600 | 300 | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250 | 500 | 30 |
| 7566 | JONES | MANAGER | 7839 | 1981-03-02 | 2975 | NULL | 20 |
| 7564 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250 | 1400 | 30 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 2450 | NULL | 10 |
| 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000 | NULL | 20 |
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000 | NULL | 10 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500 | 0 | 30 |
| 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100 | NULL | 20 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950 | NULL | 30 |
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300 | NULL | 10 |
+-------+--------+-----------+------+------------+------+------+--------+
14 rows in set (0.10 sec)

mysql> \t
Outfile disabled.
Espero que sea util.
Saludos
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 19:44.