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

archivo txt

Estas en el tema de archivo txt en el foro de PostgreSQL en Foros del Web. un caluroso sludo a todos, tal vez este tipo de problemas ya lo han solucionado antes, pero es que necesito lo siguiente: tengo un arhico ...
 
Antiguo 15/10/2010, 14:38
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
archivo txt

un caluroso sludo a todos, tal vez este tipo de problemas ya lo han solucionado antes, pero es que necesito lo siguiente:

tengo un arhico txt y lo necesito combertir en un sql, para llenar una tabla la cual ya tengo creada en posgrest.

De antemano muchisimas gracias por ayudar.
 
Antiguo 15/10/2010, 16:49
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

Abres el pgadmin copias el contenido en un editor SQL y lo guardas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
 
Antiguo 19/10/2010, 06:41
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: archivo txt

gracias por la ayuda, pero creo que no me hice entender bien.

Voy a explicar mejor la situacion para que pe puedas ayudar mejor, el asunto es el siguiente:

Yo recibo un archivo plano o TXT con unos datos seprados por "," o ";" eso aun no se ha definido, y yo a traves de php debo coger ese archivo y volverlo un query o sql simple que me permita llenar la tabla que tengo creada, la idea es que yo pueda utilizar un insert into tablita() values() y poder llenar la tabal con lo datos que vienen en el archivo.

Solo necesito la sentencia del sql.

Pido disculpas si no me hice entender bien, muchas gracias.
 
Antiguo 19/10/2010, 07:12
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

Sougiro... esto que dices, se hace atraves del comando copy y no con una secuencia de inserts.

Te pongo un ejemplo:
tienes un archivo de texto así:
1;DANIEL;8847852
2;CARLOS;8653201
3;DIEGO;6538900


Y lo deseas cargar en una tabla de la base de datos que tiene los campos ID,NOMBRE,TELEFONO.

Desde postgresql debes ejecutar esto:
COPY tabla_persona FROM '/ruta/archivo.txt' WITH DELIMITER AS ';';

Para hacerlo desde php hay una función que hace esto (pg_copy_from) pero en este caso si tienes problemas, es mejor que preguntes en dicho foro.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
 
Antiguo 19/10/2010, 08:40
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: archivo txt

Muchas gracias por la informacion a sido de mucha ayuda ya que no tenia ni idea de que las cosas eran asi, jeje que pena volver a molestarte pero es que trato de hacer una prueba desde el escritorio, pero me salio el siguiente error:

ERROR: could not open file "Escritorio/Prueba BD" for reading: No such file or directory
SQL state: 58P01

yo creo que es porque la direccion esta mal escrita, me podrias indicar como si escribe bien la direccion para el archivo en el escritorio.

Muchas gracias por todo.
 
Antiguo 19/10/2010, 08:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

windows? unix?

Un probloema muy frecuente es permisos insuficientes en el directorio donde se encuentra el archivo.

Postea como lo estas haciendo y la linea exacta.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
 
Antiguo 19/10/2010, 09:35
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: archivo txt

COPY seccion FROM 'Escritorio/Prueba BD' WITH DELIMITER AS ';';
 
Antiguo 19/10/2010, 09:40
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

Cita:
windows? unix?
En c:/? D:/?
revisaste permisos?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
 
Antiguo 19/10/2010, 09:49
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: archivo txt

no para nada, simplemente le puse es direccion y lo probe. Realmente es que nose donde veo los permisos, si es en el archivo?.
Que pena ser tan novato en esto, pero es mi primera vez que hago algo asi, y no tengo ni idea de todos los pasos que hay que segir para coger ese archivo y usarlo en el posgrest.

Mcuhas gracias por tu paciencia y tu ayuda.
 
Antiguo 19/10/2010, 09:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

Sougiro

en que sistema operativo trabajas?
con base en esto te puedo orientar mejor
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
 
Antiguo 19/10/2010, 10:01
Avatar de Sougiro  
Fecha de Ingreso: octubre-2007
Mensajes: 136
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: archivo txt

mmm jejeje perdon se me paso, en windows xp
 
Antiguo 19/10/2010, 10:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 17 años
Puntos: 360
Respuesta: archivo txt

OK.
En windows la sentencia debe ser con \\.

Pega el archivo de texto en un disco directamente.
Por ejemplo en: D:\archivo.txt

ahora ejecutas.
COPY seccion FROM 'D:\\archivo.txt' WITH DELIMITER AS ';';

Dinos que te sale.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: txt
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 19:42.