Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Importar Datos Postgres

Estas en el tema de Importar Datos Postgres en el foro de PostgreSQL en Foros del Web. Hola, necesito importar datos desde una planilla excel a postgres. Cómo puedo hacer esto? También, existe alguna manera de importar datos en formato XML? Estoy ...
  #1 (permalink)  
Antiguo 21/10/2006, 12:53
 
Fecha de Ingreso: octubre-2006
Mensajes: 3
Antigüedad: 17 años, 6 meses
Puntos: 0
Importar Datos Postgres

Hola, necesito importar datos desde una planilla excel a postgres. Cómo puedo hacer esto? También, existe alguna manera de importar datos en formato XML?

Estoy usando postgre 8.X en windows XP y pgAdmin III.
gracias por cualquier ayuda que me puedan ofrecer.
  #2 (permalink)  
Antiguo 07/02/2007, 11:27
 
Fecha de Ingreso: enero-2007
Mensajes: 10
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Importar Datos Postgres

hola, yo tenia el mismo rpoblema con excel y con xml. Para excel ya encontre una forma manual pero con xml no, de hecho tuve que bajar un programa que se llama EMS Data Import for Postgres y ese importa todo tipo de archivos, el problema es que es con licencia y la version de prueba solo dura 30 dias. Pero si te srive te digo el procedimiento para importar tus archivos de excel:

- Primero debes guardar tu archivo con formato CSV o delimitado por tabulaciones, estas dos opciones las escojes en el seleccionador de formato cuando guardas tu archivo (es un combo selector desplegable que aparece debajo del cajon donde le asignas nombre a tu archivo).
- Despues debes entrar a la base de datos donde se encuentra la tabla a la cual quieres pasar los datos. Es importante que tengas la misma cantidad de campos tanto en la tabla como en el archivo de excel por que de lo contrario te marcara un error. La sintaxis es la siguiente:

copy [nombre_tabla] FROM '[ruta_archivo]'--> esto si tu archivo esta guardado como "delimitado por tabulacions".

copy [nombre_tabla] FROM '[ruta_archivo]' DELIMITER '[caracter con el cual esten delimitados tus datos]'--> esto si tu archivo esta guardado como "delimitado por comas o puntos y comas".

Espero de sirva

saludos!!!
  #3 (permalink)  
Antiguo 03/05/2007, 06:16
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Importar Datos Postgres

En mi caso tengo un servidor linux donde tengo la base de datos y estoy con el pgADMIN III en una pc con Windows XP (esta en la misma red).

El archivo que quiero pasar a la base de datos esta en mi PC no en el servidor... la ruta puede SER.... COPY tabla FROM 'C:\\resto de ubicacion\\prueba.txt' DELIMITED ..... ???????????


COPY prueba."GPRS" from 'C:\\quesale.txt' USING DELIMITERS ';'

ME TIRA :
ERROR: could not open file "C:\quesale.txt" for reading: No such file or directory
SQL state: 58P01
  #4 (permalink)  
Antiguo 07/05/2007, 13:18
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Importar Datos Postgres

Desdes excel, puedes exportar tus datos en formato CSV...
__________________
Gracias de todas todas
-----
Linux!
  #5 (permalink)  
Antiguo 08/05/2007, 07:58
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Importar Datos Postgres

La estructura de archivos de postgresql se debe trabajar de la forma de UNIX , es decir como si fuera linux.

el copy funciona asi:

COPY tutabla FROM 'c:/carpeta/subcarpeta/archivo.txt' USING DELIMITERS ';'

debe ser slash normal e ir entre comillas sencillas, pruebalo a mi me funciono.

Saludos.
  #6 (permalink)  
Antiguo 30/09/2007, 19:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Importar Datos Postgres

Ojo chicos, tengan mucho cuidado cuando vayan a importar datos desde un archivo a postgres, para los campos tipo texto, no acepta carácteres especiales tales como:

tildes => ´
marcas registradas => (R), (C),...etc
eñes => ñ

antes de generar la consulta para la importación de los datos, deben serciorarse que su archivo no contenga ninguno de estos caracteres entre otros...

Suerte...
  #7 (permalink)  
Antiguo 01/10/2007, 01:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Importar Datos Postgres

Cita:
Iniciado por joleth10 Ver Mensaje
Ojo chicos, tengan mucho cuidado cuando vayan a importar datos desde un archivo a postgres, para los campos tipo texto, no acepta carácteres especiales tales como:

tildes => ´
marcas registradas => (R), (C),...etc
eñes => ñ

antes de generar la consulta para la importación de los datos, deben serciorarse que su archivo no contenga ninguno de estos caracteres entre otros...

Suerte...
¿Por qué nos inventamos las cosas?

aemprende=# create table pr (campo text);
CREATE TABLE
aemprende=# insert into pr values ('€ @ # ñ Ñ Á É Í Ó Ú á é í ó ú');
INSERT 0 1
aemprende=# select * from pr;
campo
-------------------------------
€ @ # ñ Ñ Á É Í Ó Ú á é í ó ú
(1 fila)
  #8 (permalink)  
Antiguo 12/05/2008, 01:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Importar Datos Postgres

mmm... yo creo q si hay problemas pq haber... yo hago este insert y el postgresql no lo guarda con las diagonales!!!:

create table abc(ruta text);
insert into abc values ('c:\windows\a.jpg');

lo guarda así:
c:windowsa.jpg

A ver!!! como se resuelve este caso???
Me interesa saber pq nunca pude hacerlo!!! como guardo la ruta de un archivo???


Agradecería su respuesta, gracias :)
  #9 (permalink)  
Antiguo 12/05/2008, 02:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Importar Datos Postgres

Cita:
Iniciado por raul810 Ver Mensaje
mmm... yo creo q si hay problemas pq haber... yo hago este insert y el postgresql no lo guarda con las diagonales!!!:

create table abc(ruta text);
insert into abc values ('c:\windows\a.jpg');

lo guarda así:
c:windowsa.jpg

A ver!!! como se resuelve este caso???
Me interesa saber pq nunca pude hacerlo!!! como guardo la ruta de un archivo???


Agradecería su respuesta, gracias :)
Es cierto, hay un problema pero es nuestro, que cuando no sabemos hacer algo le echamos la culpa al programa, a la tecnologia, etc.

En la casi todos los lenguajes que conozco '\' es un caracter especial que se utiliza para "escapar" ciertos caracteres.
Normalmente para escribir '\' hay que hacerlo asi : '\\'

Un saludo
  #10 (permalink)  
Antiguo 12/05/2008, 02:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Re: Importar Datos Postgres

zaz!

Era fácil la solución en cuanto al postgres! y no le echo la culpa a la tecnologia jejeje yo sé q todo se puede nada+ es cosa d buscarle y gracias por ayudarme :)

y t voy a contar para q queria saber esto, lo q pasa esq tengo una aplicación en Java la cual guarda la ruta de archivos en la base de datos, pero como nunca guardaba la diagonal (\) tuve q implementar un metodo el cual escaneara la cadena q queria enviar a la base de datos y si detectaba una diagonal la cambiara por otro caracter y asi fue como lo solucioné y cuando hacia el select y detectaba el caracter q haya elegido en la cadena q me arrojaba lo cambiaba por la diagonal para ocupar la ruta en el programa...y listo!

No sé si me hayas entendido... en fin.. a lo q voy esq déspués de todo con la solución q me diste tmb tengo q escanear la cadena antes de hacer el insert, y si detecto la diagonal le tengo q poner otra diagonal a la cadena para q guarde bien la ruta... y al caso me da igual! jajaja

Yo pensé q habia un tipo d dato en postgres q cuando detectara la diagonal entre los apostrofos en un insert, la respetara y la guardara asi, pero ya veo q no.

De cualquier forma, gracias :) todos los dias se aprende algo nuevo. Saludos
  #11 (permalink)  
Antiguo 20/05/2008, 13:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Re: Importar Datos Postgres

Hola
Mira estoy necesitando poner en Postgres unos datos que tengo en Excel y no entiendo el codigo que has puesto puedes darme una ayuda mas especifica por favor
  #12 (permalink)  
Antiguo 20/05/2008, 13:09
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Re: Importar Datos Postgres

Cita:
Iniciado por seyko Ver Mensaje
¿Por qué nos inventamos las cosas?

aemprende=# create table pr (campo text);
CREATE TABLE
aemprende=# insert into pr values ('€ @ # ñ Ñ Á É Í Ó Ú á é í ó ú');
INSERT 0 1
aemprende=# select * from pr;
campo
-------------------------------
€ @ # ñ Ñ Á É Í Ó Ú á é í ó ú
(1 fila)
el codigo que pones no lo entiendo bien, y ademas sirve para pasar varias columnas y filas desde excel

Gracias por tu ayuda
  #13 (permalink)  
Antiguo 20/05/2008, 18:26
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Importar Datos Postgres

Ese codigo solo lo puso de ejemplo para demostrar que era posible insertar carateres especiales en las tablas de postgres.

Si deseas exportar informacion de excel, primero tienes que guardar los datos desde excel como archivo delimitado por comas (o ;) y desde el pgadmin exportas ese mismo archivo a una tabla que desees, o tambien puedes hacer lo que dicen aca mismo usar copy
Cita:
COPY tutabla FROM 'c:/carpeta/subcarpeta/archivo.txt' USING DELIMITERS ';'
  #14 (permalink)  
Antiguo 20/04/2009, 10:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Importar Datos Postgres

Alguien sabe como hacer la importacion, pero a un servidor remoto...

no me toma la ruta local, supongo que el archivo debe estar en el mismo PC donde este el PostgreSQL, alguien sabe como designarle la ruta por FTP???

ejemplo

copy clientes from 'ftp://ftp.servidor.com/cliente.txt' delimiter ','
  #15 (permalink)  
Antiguo 20/04/2009, 18:05
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 16 años, 8 meses
Puntos: 20
Respuesta: Importar Datos Postgres

Creo que primero debes crear el archivo localmente, ya una vez en este punto puedes hacer la transferencia del archivo xml al servidor ftp usando diferentes tecnicas, por ejemplo si estuviera en un servidor remoto linux, podrias hacerlo con el comando scp.

Incluso hay herramientas que te permiten mapear servidores ftp premotos como si fueran una unidad de de una red local
  #16 (permalink)  
Antiguo 25/04/2009, 09:08
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Respuesta: Importar Datos Postgres

Quien me saca de una duda... Solamente los super usuarios de PostgreSQL pueden ejecutar el comando COPY????.

Esto lo pregunto, porque al ejecutar el comando con un usuario normal, me sale el siguiente error..


ERROR: must be superuser to COPY to or from a file
SQL state: 42501
Hint: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone.



Pero si a ese usuario lo hago superusuario, el comando funciona sin problemas
  #17 (permalink)  
Antiguo 25/04/2009, 10:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Importar Datos Postgres

El copy es un comando que ejecuta inserciones en tablas.
Dandole permisos al usuario de insert creo que puedes solucionar tu problema.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #18 (permalink)  
Antiguo 24/11/2009, 09:14
 
Fecha de Ingreso: julio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Re: Importar Datos Postgres

Cita:
Iniciado por montsezam Ver Mensaje
hola, yo tenia el mismo rpoblema con excel y con xml. Para excel ya encontre una forma manual pero con xml no, de hecho tuve que bajar un programa que se llama EMS Data Import for Postgres y ese importa todo tipo de archivos, el problema es que es con licencia y la version de prueba solo dura 30 dias. Pero si te srive te digo el procedimiento para importar tus archivos de excel:

- Primero debes guardar tu archivo con formato CSV o delimitado por tabulaciones, estas dos opciones las escojes en el seleccionador de formato cuando guardas tu archivo (es un combo selector desplegable que aparece debajo del cajon donde le asignas nombre a tu archivo).
- Despues debes entrar a la base de datos donde se encuentra la tabla a la cual quieres pasar los datos. Es importante que tengas la misma cantidad de campos tanto en la tabla como en el archivo de excel por que de lo contrario te marcara un error. La sintaxis es la siguiente:

copy [nombre_tabla] FROM '[ruta_archivo]'--> esto si tu archivo esta guardado como "delimitado por tabulacions".

copy [nombre_tabla] FROM '[ruta_archivo]' DELIMITER '[caracter con el cual esten delimitados tus datos]'--> esto si tu archivo esta guardado como "delimitado por comas o puntos y comas".

Espero de sirva

saludos!!!
Hola
Por favor necesito me digas si este comando copy con el formato correspondiente puedo ponerlo en el pgadminIII o debo hacerlo en linux en la línea de comando con psql....

Saludos
  #19 (permalink)  
Antiguo 24/11/2009, 09:17
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Importar Datos Postgres

copy funciona desde la consola de postgresql. es decir, desde pgadmin lo puedes ejecutar.

Código sql:
Ver original
  1. postgres=> \h copy
  2. Comando:     COPY
  3. Descripci¾n: copia datos entre un archivo y una tabla
  4. Sintaxis:
  5. COPY nombre_tabla [ ( columna [, ...] ) ]
  6.     FROM { 'archivo' | STDIN }
  7.     [ [ WITH ]
  8.           [ BINARY ]
  9.           [ OIDS ]
  10.           [ DELIMITER [ AS ] 'delimitador' ]
  11.           [ NULL [ AS ] 'cadena para null' ]
  12.           [ CSV [ HEADER ]
  13.                 [ QUOTE [ AS ] 'quote' ]
  14.                 [ ESCAPE [ AS ] 'escape' ]
  15.                 [ FORCE NOT NULL columna [, ...] ]
  16.  
  17. COPY { nombre_tabla [ ( columna [, ...] ) ] | ( consulta ) }
  18.     TO { 'archivo' | STDOUT }
  19.     [ [ WITH ]
  20.           [ BINARY ]
  21.           [ HEADER ]
  22.           [ OIDS ]
  23.           [ DELIMITER [ AS ] 'delimitador' ]
  24.           [ NULL [ AS ] 'cadena para null' ]
  25.           [ CSV [ HEADER ]
  26.                 [ QUOTE [ AS ] 'quote' ]
  27.                 [ ESCAPE [ AS ] 'escape' ]
  28.                 [ FORCE QUOTE columna [, ...] ]
  29.  
  30. postgres=>

saludos.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #20 (permalink)  
Antiguo 27/11/2009, 08:46
 
Fecha de Ingreso: julio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Importar Datos Postgres

Cita:
Iniciado por huesos52 Ver Mensaje
copy funciona desde la consola de postgresql. es decir, desde pgadmin lo puedes ejecutar.

Código sql:
Ver original
  1. postgres=> \h copy
  2. Comando:     COPY
  3. Descripci¾n: copia datos entre un archivo y una tabla
  4. Sintaxis:
  5. COPY nombre_tabla [ ( columna [, ...] ) ]
  6.     FROM { 'archivo' | STDIN }
  7.     [ [ WITH ]
  8.           [ BINARY ]
  9.           [ OIDS ]
  10.           [ DELIMITER [ AS ] 'delimitador' ]
  11.           [ NULL [ AS ] 'cadena para null' ]
  12.           [ CSV [ HEADER ]
  13.                 [ QUOTE [ AS ] 'quote' ]
  14.                 [ ESCAPE [ AS ] 'escape' ]
  15.                 [ FORCE NOT NULL columna [, ...] ]
  16.  
  17. COPY { nombre_tabla [ ( columna [, ...] ) ] | ( consulta ) }
  18.     TO { 'archivo' | STDOUT }
  19.     [ [ WITH ]
  20.           [ BINARY ]
  21.           [ HEADER ]
  22.           [ OIDS ]
  23.           [ DELIMITER [ AS ] 'delimitador' ]
  24.           [ NULL [ AS ] 'cadena para null' ]
  25.           [ CSV [ HEADER ]
  26.                 [ QUOTE [ AS ] 'quote' ]
  27.                 [ ESCAPE [ AS ] 'escape' ]
  28.                 [ FORCE QUOTE columna [, ...] ]
  29.  
  30. postgres=>

saludos.
Estimados
Gracias por la respuesta, ya logré subir el archivo a la tabla que necesitaba pero tuve que eliminar tildes y caracteres especiales. Hay alguna manera de subir con el comado Copy sin quitar las tildes y demás caracteres especiales?, es decir subir un archivo a una tabla tal y como está...
Otra opción creo que sería con EMS data import para Postgres, pero el problema es la licencia....
Espero sus respuestas....

Gracias
  #21 (permalink)  
Antiguo 27/11/2009, 09:02
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Importar Datos Postgres

Todo depende de la codificación que tenga tu base de datos.

Asegurate que sea sql_ascii o utf8.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #22 (permalink)  
Antiguo 27/11/2009, 09:54
 
Fecha de Ingreso: julio-2009
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Importar Datos Postgres

Cita:
Iniciado por huesos52 Ver Mensaje
Todo depende de la codificación que tenga tu base de datos.

Asegurate que sea sql_ascii o utf8.

saludos
Gracias por tu respuesta..
Te cuento que acabo de revisar el codificado de mi DB en postgres y dice UTF8, entonces que problema puede ser?.

Espero tu respuesta.

Anita
  #23 (permalink)  
Antiguo 27/11/2009, 23:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Importar Datos Postgres

Anita... te recomiendo este articulo
http://darkchicles.wordpress.com/200...s-en-postgres/

Lo acabo de probar y funciona a la perfección.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #24 (permalink)  
Antiguo 30/11/2009, 11:37
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Importar Datos Postgres

Hola, necesito ayuda, actualmente tengo instalado postgres 8.xx, en un servidor de Ubuntu en formato texto, estoy tratando de conectarme via pgadmin pero no logro conectarme, he investigado y segun lo leido esta que este sistema operativo por seguridad no deja accesar como usuario root, y de momento me niega el acceso pero mi duda es porque me sale que aprentemente no esta configurado para accesar via tcp/ip en el hbd.conf esta configurado segun yo, debido a que tengo otro servidor en linux que si me permite conectar por esta via y lo he configurado igual con diferente ip, no se si esto me da problema o cual puede ser el problema de coneccion.

De atnemano les agradescoco
  #25 (permalink)  
Antiguo 11/12/2009, 08:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santa Clara
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Importar Datos Postgres

Hola tambien puedes usar la herramienta etl kettle de la suite de pentaho, esta herranmienta es libre y tiene conectores de entrada y salida para importar datos hacia postgres, es de facil uso

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 19:02.