Re: Importar fichero CSV

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?

In response to

Responses

Browse pgsql-es-ayuda by date

  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