[pgsql-ayuda] Insertar archivos de datos

Mario Oroz jmoroz@uol.com.ar
Tue, 13 Mar 2001 09:43:51 -0300


----- Original Message -----
From: Sergio Aguirre <sergio@dscorp.com.mx>
To: <pgsql-ayuda@tlali.iztacala.unam.mx>
Sent: Tuesday, March 13, 2001 3:31 AM
Subject: [pgsql-ayuda] Insertar archivos de datos


> Que tal,
>
> Tengo un problema, estoy configurando bases de datos en postgres y ya
> tengo las tablas, pero los datos los tengo en excel y quisiera meterlos a
> mi tabla, he estado buscando la forma de hacerlo pero lo más cercano es
> insertar datos desde una tabla temporal y ya hice algunas pruebas pero no
> se cómo hacerlo.
> Si alguien me puede dar el tip de cómo insertar tablas enteras desde
> archivos de texto plano, les agradecería bastante.
>
> Saludos, Sergio Aguirre
>
> --------- Pie de mensaje -------------------------------------------
> Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
> Cancelar inscripcion:
> mail to: majordomo@tlali.iztacala.unam.mx
> text   : unsubscribe pgsql-ayuda

La forma que conosco de hacere este duro trabajo es usando la sentencia
SQL :

base# copy tabla.base from '/usr/local/pgsql/txt.in' using delimiters '|';

podes especificar como representas los null en tu tabla conla clausula WITH NULL
AS 'null
string '
O incluso mantener los OID de los registros entre copias, es decir:

copy tabla with oids to 'txt.in' using delimiters '|';
copy tabla.bak with oids from 'txt.in' using delimiters '|' with null as '-';

En principio esto te puede Ayudar. En cuanto al tema de que tenes las tablas en
Excel, podes tranformarlas en texto plano esto es un poco engorroso pero se
puede (Ahora mismo no sabria como pero es cuestion de investigar, yo tuve que
pasar tablas de Progress a Postgres, y me resulto muy facil).

Esta es la sintaxis de Copy:

COPY: Copies data between files and tables

COPY [ BINARY ] table [ WITH OIDS ]
FROM { 'filename ' | stdin } [ [USING] DELIMITERS 'delimiter ' ] [ WITH NULL AS
'null
string ' ];


COPY [ BINARY ] table [ WITH OIDS ]
TO { 'filename ' | stdout } [ [USING] DELIMITERS 'delimiter ' ] [ WITH NULL AS
'null string' ];

Mario.

--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe pgsql-ayuda