• Publicidad

Código Perl en base de datos

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Código Perl en base de datos

Notapor visualfree » 2009-11-21 14:19 @638

Mi duda es la siguiente: tengo una base de datos donde tengo almacenados códigos fuentes. Por ejemplo:

print "hola mundo";

¿Cómo puedo ejecutar ese programa que está en mi base de datos sin necesidad de tenerlo en el PC sino tenerlo en la base de datos, y ejecutarlo desde allí...?

print hola.pl <-- pero ese hola.pl sacarlo desde la base de datos y ejecutarlo...

¿Será esto posible? Espero me entiendan...
Última edición por explorer el 2009-11-21 17:53 @787, editado 2 veces en total
Razón: Ortografía
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Publicidad

Re: Perl Bdd

Notapor explorer » 2009-11-21 17:20 @764

Para ejecutar un código Perl necesitas dárselo al intérprete perl.

Dudo mucho que puedas ejecutar un código Perl dentro de un base de datos, salvo que esta base de datos disponga de un intérprete Perl (yo no conozco ninguna).

Si nos das más pistas de lo que quieres hacer a lo mejor te damos otra solución.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Perl Bdd

Notapor visualfree » 2009-11-21 17:44 @780

Tener una colección de códigos de Perl en una base de datos...

Por ejemplo, subo hola.pl a mi base de datos...

Ése quiero ejecutarlo, perl hola.pl... no sé si se pueda bajar o leer y ejecutar, etc. etc... no sé si me doy a entender.
Última edición por explorer el 2009-11-21 17:54 @787, editado 1 vez en total
Razón: Ortografía
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Re: Código Perl en base de datos

Notapor explorer » 2009-11-21 17:59 @791

Sí que puedes almacenar código en una base de datos, pero la única forma de ejecutarles como programas es por medio de un intérprete perl, así que la máquina donde quieres ejecutarles debe disponer de ese intérprete.

Por ejemplo: puedes tener tu base de datos en un servidor. Con una petición desde un ordenador cliente, puedes bajarte el código, como resultas de una consulta a la base de datos. El resultado lo puedes guardar a disco y ya tienes un programa a ser ejecutado por el intérprete perl local.

Si el programa que hace la consulta a la base de datos es en sí mismo un programa en Perl, entonces no necesitas guardarlo a disco: puedes ejecutarlo directamente por medio de eval().
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código Perl en base de datos

Notapor visualfree » 2009-11-21 18:02 @793

Exactamente, eso es lo que necesito. De esa manera me evito bajar el código a mi PC...

Muchas gracias...

Ahora me toca aprender base de datos en Perl :) Creo que aprenderé con DBI ¿Qué me recomiendas?
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Re: Código Perl en base de datos

Notapor explorer » 2009-11-21 18:07 @796

Puedes empezar por los tutoriales sobre base de datos que hay en este sitio web, y luego leer DBI. Si consigues leerlo entero te habrás convertido en un experto en base de datos en Perl.

¡Adelante!
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Código Perl en base de datos

Notapor visualfree » 2009-11-21 20:39 @902

Ahí aprenderé Perl+DBI+MySQL. Gracias por la buena disposición.

Saludos.
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Re: Perl Bdd

Notapor salva » 2009-11-22 11:47 @532

explorer escribiste:Dudo mucho que puedas ejecutar un código Perl dentro de un base de datos, salvo que esta base de datos disponga de un intérprete Perl (yo no conozco ninguna).

PostgreSQL lo permite.
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Re: Código Perl en base de datos

Notapor visualfree » 2009-11-22 14:06 @629

salva escribiste:PostgreSQL lo permite.


Hola, ¿podrías colocar un breve ejemplo de lo que dices, por favor?
visualfree
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2009-11-19 03:01 @167

Re: Código Perl en base de datos

Notapor pvaldes » 2011-02-02 12:53 @578

Es relativamente sencillo con PostgreSQL. Estudia, por ejemplo, la siguiente consulta SQL:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
  1. CREATE OR REPLACE FUNCTION ejecutaperl(argumentos) RETURNS SETOF test AS $$
  2. my $script = spi_exec_query("select X from MI_TABLA where X cumple una condicion");
  3. #... más código Perl incrustado;
  4. #... si es necesario pulimos el script ... ;
  5. # y acabamos con:
  6. system("perl $script");
  7. $$ LANGUAGE plperl;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Obviamente es sólo un esquema para empezar a trabajar, tienes que definir la consulta real en base a tu estructura de la tabla, la condición, el formato de salida (que puede ser SETOF test o no) y el nombre y tipo de los argumentos opcionales (si los hay). Tienes que buscar la manera de cargar la variable de una manera adecuada y también hay que cargar primero el lenguaje confiable plperl o su versión insegura (plperlu) en PostgreSQL. La razón para tener plperlu es que a veces plperl no permite hacer cosas por razones de seguridad.

Una vez que la función proporcione el resultado esperado y asumiendo que en tu Linux tienes un Perl instalado y funcional podrás invocar perl desde tu base de datos PostgreSQL simplemente con

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
  1. SELECT ejecutaperl(argumentos);
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Y eso es todo.

Puedes lanzar un compilador Perl desde muchos programas y lenguajes en realidad, incluido Python, GNU-R, C... o el propio Perl, cualquier cosa que permita una llamada subyacente al sistema.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados