Contestare con la mejor de las ondas y simpatias
con una pisca de ironias.


--- El jue 12-mar-09, Virginia <mavi...@gmail.com> escribió:

> De: Virginia <mavi...@gmail.com>
> Asunto: [pgsql-es-ayuda] leer de un txt a postgres
> A: pgsql-es-ayuda@postgresql.org
> Fecha: jueves, 12 marzo, 2009, 8:28 am
> Buenas tardes a todos. Necesito que alguien me oriente en lo
> siguiente:
>      Tengo una tabla en postgresql que debe ser alimentada
> por datos
> almacenados en dos archivos txt (uno.txt y dos.txt).
>      Debo leer cada linea de cada archivo para determinar,
> según las
> longitudes,  qué información va a qué campo.
>      Adicionalmente, hay varios campos que tienen al final
> un caracter que
> indica si este caracter debe ser sustituido por un signo
> negativo y un
> número, por ejemplo 01245551Q ---> la Q vale -8, osea
> que tomando en cuenta
> las condiciones mencionadas y otras que no viene al caso
> explicar, el valor
> queda -124555.18.
>      Cabe destacar, que algunos campos de esta tabla se
> llenan con datos
> provenientes del archivo uno.txt y otros campos de la misma
> tabla se llenan
> con los datos que provienen del archivo dos.txt.
>      Otro detalle es que esto debe ser una tarea programada
> en postgresql
> (PgAgent... sigo yo con el temita...) o en lo que sea, esto
> lo resuelvo
> después.
Bueno sos un poco cabezona, por que con una tarea programada en un punto sh que 
dispare funciones en postgresql porgramadas en pl/pgsql, te basta

Yo hago algo parecido, pero el texto lo analizo cuando genero los txt y los 
cambio.




> Ahora bien, mi pregunta es la siguiente:
> ¿Cómo hago para migrar esta información de ambos
> archivos a la tabla en
> postgresql? teniendo en cuenta que hay que leer y
> "traducir" ciertos
> valores.


Create un esquema con la replica de las tablas, de forma que sea un
esquema auxiliar con tablas auxiliares.

Borralas y llenalas con lo que hay en los txt, con sh disparando las pl/pgsql

Y funciones para insertar los que hay que insertar, modificar los que 
hay que modificar y crear esas reglas que tu sabes para que ciertos datos los 
tome de una tabla y otros de otra.

Asi resolvi un tema parecido, donde tengo que comunicar info de server 1 a 
server 2 y de server 2 a 1 mediante un pen driver, los dos tienen dos esquemas, 
importar y exportar, solo que lo exportado en uno genera una salida para ser 
tomada en el esquema importar del otro, por lo tanto tengo que modificar el 
texto de salida al script.

Un sh es ejecutado cuando se invoca un usuario y copia del pendriver al 
home/importar de ese usuario y ejecuta las funciones que se encargarn del resto.


 ¿Para esto me sirve el LOAD DATA? si alguien sabe
> cómo se hace con
> LOAD DATA, por favor, indíqueme un ejemplo porque en
> postgresql no
> encuentro.
> 
> Muchas gracias, espero que alguien pueda darme un ejemplo
> claro de esto....
> -- \

De LOAD DATA no se un caramelo, pero se me ocurre que en pl/pgsql y el comando 
replace, podes hacer en las tablas auxiliares que te comente los cambios 
correspondietes.


Espero el aporte te sirva.

Saludos

Gabriel Colina

> -----------------------------------------------------------
> ------------------------ Virginia ------------------------
> -----------------------------------------------------------


      ¡Sé el Bello 51 de People en Español! ¡Es tu oportunidad de Brillar! Sube 
tus fotos ya. http://www.51bello.com/
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a