[caracas-pm] Como verificar la sintaxis de una función plPerl en postgres

Francisco Obispo fobispo at isc.org
Sun Aug 24 12:50:45 PDT 2014


On Aug 21, 2014, at 8:51 PM, Monica Tahan <monicatahan at gmail.com> wrote:

> Gracias Ernesto por tu respuesta...
> 
> Si efectivamente, la razón por la que recurrimos a usar pl/perlU, es por sus bondades para el procesamiento de archivos de textos CSV, funcionalidad que no iba a poder emplear en su máxima expresión en pl/perl sencillo o con plpgsql, que es el que se debe emplear primero que cualquier otro como mencionas. En este caso puntual estamos usando librerías externas para la conversión de tipo de codificación del archivo y estructuras de validación con expresiones regulares, de los datos del CSV origen.
> 

Postgres tiene muchas facilidades para procesar archivos CSV, incluyendo FDW (Foreign Data Wrappers) que permiten acceder a los datos sin tener que importarlos.

Procesar archivos CSV es mas difícil de lo que parece, si estas usando perl sin usar Text::CSV_XS, les recomiendo que lo vean.

> El error de sintaxis estaba en las estructuras de los inserts, porque el dato no se estaba guardando, sino estaba intentando insertar en hash (mala mia), ya habíamos hecho el perl -c y la sintaxis de perl estaba OK, era sintaxys SQL errada. Hoy resolvimos el problema, haciendo lo siguiente:
> 
> 1. Tomamos la expresión que va después del like y la construimos en una variable concatenándole la expresión regular para añadir los porcentajes.
> 2. Tomamos el dato empleando la expresión: my $dato_id = $query_id->{rows}[0]->{id_columna};
> 
> Ya con eso, la función corrió correctamente y no hubo inconvenientes. Voy tomar en cuenta tu recomendación respecto al uso de la familia SPI, pues me interesa que el tiempo de ejecución sea imperceptible para el usuario.
> 
> Gracias a todos por sus respuestas, feliz noche...
> 

La mejor recomendación que puedes tomar del comentario de ernesto, es que migren todo a PLPGSQL.

Saludos


More information about the caracas-pm mailing list