From: | "Miguel Juan" <mjuan(at)cibal(dot)es> |
---|---|
To: | Javier Estévez CIFA Córdoba <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Importar fichero CSV |
Date: | 2007-03-31 11:05:14 |
Message-ID: | 00b001c77384$76d42380$3900a8c0@Despacho |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola Javier,
La manera más simple para importar desde un CVS es con GAWK. Desde Linux o CygWin para Windows sería algo así :
cat archivo.txt|gawk -F ';' 'NF=4 { print $0}'| psql -c "COPY tabla FROM stdin" baseDeDatos
donde NF es el numero de campos y -F es el separador.
Deberás ejecutar el comando para cada tabla que quieras rellenar indicando el número de campos en cada tabla...
Puedes hacer maravillas como cambiar el separador, el orden de los campos, etc. Y todo con una simple línea de comandos.
Saludos
Miguel Juan
----- Original Message -----
From: Javier Estévez CIFA Córdoba
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Friday, March 30, 2007 1:21 PM
Subject: [pgsql-es-ayuda] Importar fichero CSV
Hola, necesito importar un fichero de texto en .DAT que realmente es un CSV e incorporarlos en mi BD postgresql, concretamente a 2 tablas. Unos registros irían a una tabla y otros a otra.
El problema es que tengo algunas FILAS en el archivo que tienen más "columnas" que otras. Concretamente las esas son las filas que corresponden a una y otra tabla.
He intentado hacerlo así en un principio:
COPY table FROM 'ruta de mi archivo.dat'
Pero da el siguiente ERROR:
"extra data after las expected column"
Sería posible hacer una función que me importe este archivo, me reconozca las filas de uno u otro tipo y me las introduzca en una u otra tabla?
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Martínez | 2007-03-31 11:09:09 | Re: ayuda Zeos y postgres II |
Previous Message | Juan Martínez | 2007-03-31 09:07:43 | Re: ayuda Zeos y postgres II |