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

Subir .txt a base de datos POSTGRE

Estas en el tema de Subir .txt a base de datos POSTGRE en el foro de PostgreSQL en Foros del Web. Que tal: Necesito ver como hago para subir un archivo .txt que tengo separados por ";" que genero en java a una base de datos ...
  #1 (permalink)  
Antiguo 27/04/2007, 12:39
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Subir .txt a base de datos POSTGRE

Que tal:

Necesito ver como hago para subir un archivo .txt que tengo separados por ";" que genero en java a una base de datos postgre.

En un principio tengo creadas la tabla con las distintas columnas que coinciden con la estructura de mi txt y quisiera poner en cada columna los datos del texto.

Mi texto tiene la estructura:

NOMBRE ; FECHA ; DATO ; NAME1 ; NAME2 ; NAME3 .... ; NAMEn
x ; xx ; x ; x ; x ; x .....; x
y yy
z
.
.

Otra opcion que tendria es armar las columnas de mi tabla en la base de datos en base a la cabecera del texto y no predefinir las columnas de la tabla de la base (NO SE SI ESO SE PUEDE)... esto me permitiria que si hoy mi texto tiene una nueva columna... que actualize inmediatamente la tabla de la base.


Como se puede hacer ??
Mi proyecto final seria subir a esa base postgre varios archivos .txt con la misma estructura , y poder ver ademas si los datos que voy a subir ya los subi o no. La primer linesa de mi .txt la tendria que borrar ya que seria el nombre de mis columnas de la tabla de la base.
Gracias
  #2 (permalink)  
Antiguo 27/04/2007, 13:21
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: Subir .txt a base de datos POSTGRE

Hola...

Esa estructura de cada dato separador por punto y coma no creo que te sirva... de todas formas, mira un poco la documentación:

COPY
pg_restores
psql

Comenta tus resultados...

Pendientes
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 27/04/2007, 14:00
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

La estructura de separados por ; la puedo modificar ya que yo armo el archivo .txt con java y es ahi donde incluyo el ";".. Pero puedo incluir cualquier otra cosa.

Voy a investigar eso y cuento.

gracias
  #4 (permalink)  
Antiguo 27/04/2007, 14:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 179
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

Lo que debes hacer es:
1). Limpiar la tabla, o borrar los registros que te vayan a generar problema, de pronto una llave primaria que no se pueda infringir o algo asi.

2). Al archivo que generas debes borrar la primer linea, es decir, borrar el nombre de los campos, el copy los inserta en el mismo orden de la tabla y como esten en el archivo.

3). Luego importas los datos de la siguiente forma:
COPY tu_tabla from 'ruta_completa_de_tu_archivo' USING DELIMITERS ';'

Y listo, de esta manera te funciona, revisalo y veras.

Saludos y hasta la proxima.
  #5 (permalink)  
Antiguo 30/04/2007, 08:29
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

Muchas gracias rusinho..

Ahora, supongamos que hoy o mañana el texto que tengo que subir a la tabla contiene alguna columna nueva.. Yo por un lado tengo la tabla creada en la base de datos con una estructura fija.. Como hago para que en caso de que el texto tenga un nuevo campo , se actualize la tabla de la base de datos en una forma semi automatica ?

Tambien, me interesa ver controlar que no se guarden datos repetidos, o sea que en la subida de los datos a la tabla exista un chequeo de la informacion.. como seria lo mas optimo para hacerlo ?
  #6 (permalink)  
Antiguo 03/05/2007, 06:42
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

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
  #7 (permalink)  
Antiguo 03/05/2007, 07:25
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

supongo que el problema viene dado porque la ruta que tengo que poner debe de ser vista desde el servidor.... ahora como sera esa ruta ?
  #8 (permalink)  
Antiguo 03/05/2007, 08:21
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Subir .txt a base de datos POSTGRE

Problema resuelto

El archivo tenia que ser visible para el servidor...
Fue ponerlo en una carpeta dentro del server y listo.

Ahora me queda modificar algo en los permisos de la base de datos o no se que ya que para hablar de la tabla GPRS tengo que poner prueba."GPRS"
y desde JAVA no puedo utilizar comillas para ejecutar el comando COPY desde java.
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




La zona horaria es GMT -6. Ahora son las 17:50.