Ups. Tienes toda la razón, es solo para importar. Te pido disculpas por mi
error.
Me siento en el compromiso de ofrecer una solución alternativa, aunque
rudimentaria.
 
Supongamos exportas tu tabla al siguiente archivo con el delimitador '|':
 
campo_1|campo_2|campo_3|campo_4
campo_a|campo_b|campo_c|campo_d

Ahora puedes convertir estas filas en posiciones fijas con un simple awk:
 
awk -F'|' '{ printf("%-10s%-6s%-20s%-10s\n", $1, $2, $3, $4) }' mi_tabla.txt
> mi_tabla_fija.txt
 
El resultado será un archivo con posiciones fijas:
$ cat mi_tabla_fija.txt
campo_1   campo_2campo_3             campo_4
campo_a   campo_bcampo_c             campo_d

En el printf del awk notarás que voy poniendo el ancho para cada columna en
orden secuencial. Si el ancho es negativo entonces indico que el valor se
alinee a izquierda, si el ancho es positivo obtendré alineación a derecha.
El ejemplo aplica para 4 campos ($1 a $4), pero puedes ir agregando columnas
metiendo dentro de las comillas del printf la secuencia   s<ancho>%   por
cada nueva columna, y al final de la coma un $<nro_campo> por cada campo
adicional.
 
Si sabes programar, es trivial el ejemplo. Si te cuesta comprenderlo,
escribime por privado con tu caso completo y te ayudo a adecuar el awk.
Si no tienes disponible un Unix también me ofrezco a procesar tu archivo.
 
Saludos,
Fernando.
 
 
 
 



  _____  

De: Fabian Sandoval [mailto:[EMAIL PROTECTED] 
Enviado el: Miércoles, 12 de Noviembre de 2008 14:59
Para: Fernando Hevia; pgsql-es-ayuda@postgresql.org
Asunto: Re: [pgsql-es-ayuda] Problema con Copy to delimiter


Muchas gracias Fernando por el programa, le he estado mirando pero este es
para Importar , pasar de TXT a Postgres, pero lo que nesesito es lo
contrario que de la base de datos de Postgres a TXT, sin ningun delimitador
, por posicion y creo que este no me sirve, no se. 
GRacias FErnando


2008/11/12 Fernando Hevia <[EMAIL PROTECTED]>


Fabian,
 
El comando copy no soporta la exportación a posiciones fijas. Si no le
especificás un delimitador fuerza un espacio.
Te recomiendo eches un vistazo a benetl (www.benetl.net
<http://www.benetl.net/> ) que es un ETL free para Postgres.
 
Saludos,
Fernando.
 
 


  _____  

De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de Fabian Sandoval
Enviado el: Martes, 11 de Noviembre de 2008 17:22 

Para: pgsql-es-ayuda@postgresql.org
Asunto: [pgsql-es-ayuda] Problema con Copy to delimiter



Hola amigos tengo un problema con la EXPORTACION de postgres a archivos de
texto plano. Pues me piden un archivo de texto plano sin delimitadores, pero
cuando exporto con la siguiente consulta 

copy (select  * from tranp OFFSET 500 limit 50000) to
'c:/import/tablita.dat'

voy y miro el resultado y postgres me pone espacios en blanco entre las
columnas , entonces intento con esta consulta 

copy (select  * from tranp OFFSET 500 limit 50000) to
'c:/import/tablita.dat' delimiter ''

 

para que simplemente no me ponga delimitadores, pero me da error que,
obligatoriamente tengo que poner un carácter entre las comillas simples de
delimiter. 

 

No se que hacer, pues me piden un archivo de texto plano sin delimitadores y
sin espacios, osea un archivo de texto plano por posiciones. 

 


Responder a