Re: Importar fichero CSV

From: Javier Estévez CIFA Córdoba <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>
To: "Henry" <hensa22(at)yahoo(dot)es>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Importar fichero CSV
Date: 2007-04-03 12:23:33
Message-ID: 00e101c775ea$e555c8f0$6d64460a@cfco04.cap.juntaandalucia.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

No funciona ESO.

Lo estoy haciendo en MATLAB.

Gracias a todos.
----- Original Message -----
From: Henry
To: Javier Estévez CIFA Córdoba ; pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, April 02, 2007 3:14 PM
Subject: Re: [pgsql-es-ayuda] Importar fichero CSV

Javier Estévez CIFA Córdoba <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es> escribió:
Ya lo probé y no funciona...
----- Original Message -----
From: Henry
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Saturday, March 31, 2007 2:58 PM
Subject: Re: [pgsql-es-ayuda] Importar fichero CSV

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?
lo que puedes hacer es crear una tabla con el maximo valor de columnas que necesites, si tu primera tabla tienes 7 campos y tu segunda tabla tienes 10 campos, entonces create un tabla de 10 campo, y ahi importa tu archivo CSV.

una vez ya importado a esta tabla puedes hacer un
insert into tabla_7_capos select ................ where campo10 is null. (para tu tabla de 7 campos)

y

insert into tabla_10_campos select ...............tabla_copy where campo10 not is null. (para tu tabla de 10 campos).

espero ayude.

Saludos.

ummm, yo hize un pequeña prueba con 3 columnas
que son estas en el archivo csv

1,1,
2,2,
3,3,
4,4,
5,5,
6,6,6
7,7,7
8,8,8
9,9,9
10,10,
11,11,11

cree una tabla de 3 columnas :
use el copy para insertarla en la tabla.

copy tabla_principal from 'E:/doc1/user/doc2/libro1.dat' with csv (tu dices que tu archivo tiene formato CSV solamente que esta con extensión DAT)

luego cree una tabla con dos columnas
he hize lo siguiente :
insert into tabla_2_col select tabla_principal.col1,tabla_principal.col2 from tabla_principal where tabla_principal.col3 is null

hay que fijarse que los tipos de datos son iguales en las dos tablas.

puedes hacer una prueba a pequeña escala, con 5 o 6 columnas y unos 25 a 40 registros, para tener un mejor control de la situación y despues que veas que todo esta Ok, ya mandarse con todo.

------------------------------------------------------------------------------

LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Javier Estévez CIFA Córdoba 2007-04-03 12:24:40 Re: Importar fichero CSV
Previous Message José Manuel Ruiz 2007-04-03 10:15:46 Re: Fwd: encriptar la informacion