Skip to content

Importar datos a Postgres desde Excel

30 mayo, 2011

La situación es la siguiente:

  • Postgres instalado en Linux
  • PgAdminIII en un sistema operativo windows 7
  • Un archivo de Excel con 400.000 registros que deseo llevar a una tabla en Postgres

Estos son los pasos a seguir:

Lo primero que debemos hacer es convertir el archivo de excel a un archivo .CSV (delimitado por comas). Luego al archivo lo abrimos con el bloc de notas y lo guardamos como archivo .txt con codificación UTF8, cada tupla separado por el caracter ” ; “.

La tabla a la cual vamos a importar los registros debe tener la misma cantidad de campos que las columnas del archivo de texto.

Ahora viene lo bueno, debemos copiar el archivo de texto y pegar en el servidor Linux (donde esta instalado Postgres), bajo una carpeta determinada.

Abrir el PgAdmin desde windows y escribir la siguiente línea (como ejemplo):

COPY ciudadanos FROM ‘/var/www/importar/archivo.txt‘ USING DELIMITERS ‘;’

Donde ciudadanos es el nombre de la tabla, /var/www/importar/archivo.txt la ruta donde guardé el archivo de texto con los registros, y ‘;’ es el caracter que delimita las tuplas.

En algunos foros comentan que la importación se puede hacer con el archivo almacenado en windows, es decir con una ruta similar a esta: c:/importar/archivo.txt, pero les cuento que no funcionó, el archivo con los registros debe estar almacenado en el mismo computador o servidor donde se encuentra Postgres instalado.

Este Post lo escribí en base a una experiencia propia, si tienen otras alternativas por favor comenten, así podemos dar una mano a personas que se encuentran en situaciones similares.

From → Excel, Postgres

9 comentarios
  1. Jorge permalink

    hola tengo un problema cuando hago los pasos me refleja el siguiente error ayuden por favor
    ERROR: no existe la relación «citas_asignadas»

    ********** Error **********

    ERROR: no existe la relación «citas_asignadas»
    SQL state: 42P01

  2. Jerry P11 permalink

    Que tal amigo!

    oye intente hacer esto que dices pero me marco este error, no se exactamente a que se deba!

    ERROR: faltan datos en la columna «total»

    saludos, y gracias anticipadamente

  3. Juventus permalink

    Que tal buen día:

    Estoy comenzando a interactuar un poco con PostgreSQL 8.4.9 y tengo la necesidad de subir varios archivos .CSV a una tabla que ya tengo definida, y la tarea de hacer uno por uno resulta bastante fastidiosa.

    Asi es como subo un archivo y no tengo ningun problema:

    \copy portafolio FROM ‘C:\Users\LAP-52\ARCHIVOSCSV\archivo1.csv’ WITH DELIMITER AS ‘,’ CSV HEADER;

    Existe una manera de subir mas de un archivo a la vez? Es decir que suba todos los archivos existentes en ese directorio?

    Saludos

  4. esta bien asi como dice luis… separados por comas los campos y las tuplas por ;

  5. tustus permalink

    Guevo pana ? preguntame como

  6. Yoks permalink

    jajajjajjaja

  7. luis permalink

    Disculpa por preguntar pero neceito saber en realidad donde va el famoso para mi ‘ ; ‘(punto y coma. Tengo una tabla por ejemplo con 3 atributos. En el *.txt quedaria asi por ejemplo: nombre,edad,sexo donde pongo el ; que usare como dilimitador.

    Disculpa la molestias gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: