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

COPY + SELECT..... como se hace?

Estas en el tema de COPY + SELECT..... como se hace? en el foro de PostgreSQL en Foros del Web. Que tal amigos..... Como puedo generar un plano de una tabla por psql dependiendo de un select? Me explico: Necesito generar un plano de una ...
  #1 (permalink)  
Antiguo 11/05/2007, 10:55
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Pregunta COPY + SELECT..... como se hace?

Que tal amigos.....

Como puedo generar un plano de una tabla por psql dependiendo de un select?

Me explico:
Necesito generar un plano de una tabla a partir de un select. Algo similar a informix donde puedo ejecutar la siguiente instruccion desde el dbaccess:

UNLOAD TO arc.unl SELECT * FROM tabla WHERE fecha BETWEEN '01012007' and '01312007'

Se que en psql existe el comando COPY pero hasta donde he averiguado este genera el contenido de toda la tabla

Agradezco de antemano sus opiniones al respecto

Un Cordial Saludo
  #2 (permalink)  
Antiguo 11/05/2007, 12:31
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: COPY + SELECT..... como se hace?

si tienes una version de postgres 8.2.X puedes utilzar el copy especificandole una sentencia sql:
http://www.postgresql.org/docs/curre.../sql-copy.html
  #3 (permalink)  
Antiguo 11/05/2007, 13:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: COPY + SELECT..... como se hace?

Si tienes una version anterior, puedes utilizar el siguiente bloque de comandos,

Ejemplo:
Windows:
Código:
CREATE TEMP TABLE tabla1_temp AS
    SELECT * FROM tabla1 WHERE campo1<10;
 COPY tabla1_temp TO 'c:/copiar.txt' USING DELIMITERS ';';
 DROP TABLE tabla1_temp;
Linux:
Código:
CREATE TEMP TABLE tabla1_temp AS
    SELECT * FROM tabla1 WHERE campo1<10;
 COPY tabla1_temp TO '/home/user/copiar.txt' USING DELIMITERS ';';
 DROP TABLE tabla1_temp;
Toca de esta forma en las versiones anteriores a postgresql 8.2, pero se puede hacer,, jijiji

Espero te sirva.

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 17:03.