Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Avanzado » Código Perl en base de datos Responder al tema
Nuevo tema


Página 1 de 1  [ 10 mensajes ] 
 
Nota 2009-11-21 14:19 @638

Perlero Nuevo
Registrado: 2009-11-19 03:01 @167
Mensajes: 41
Código Perl en base de datos
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
Ortografía


Nota 2009-11-21 17:20 @764
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Perl Bdd
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


Nota 2009-11-21 17:44 @780

Perlero Nuevo
Registrado: 2009-11-19 03:01 @167
Mensajes: 41
Re: Perl Bdd
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
Ortografía


Nota 2009-11-21 17:59 @791
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Código Perl en base de datos
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


Nota 2009-11-21 18:02 @793

Perlero Nuevo
Registrado: 2009-11-19 03:01 @167
Mensajes: 41
Re: Código Perl en base de datos
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?


Nota 2009-11-21 18:07 @796
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Código Perl en base de datos
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!


Nota 2009-11-21 20:39 @902

Perlero Nuevo
Registrado: 2009-11-19 03:01 @167
Mensajes: 41
Re: Código Perl en base de datos
Ahí aprenderé Perl+DBI+MySQL. Gracias por la buena disposición.

Saludos.


Nota 2009-11-22 11:47 @532
Avatar de Usuario
Perlero Frecuente
Registrado: 2008-01-03 15:19 @680
Mensajes: 175
Re: Perl Bdd
explorer escribió:
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.


Nota 2009-11-22 14:06 @629

Perlero Nuevo
Registrado: 2009-11-19 03:01 @167
Mensajes: 41
Re: Código Perl en base de datos
salva escribió:


Hola, ¿podrías colocar un breve ejemplo de lo que dices, por favor?


Nota 2011-02-02 12:53 @578

Perlero Frecuente
Registrado: 2011-01-22 12:56 @580
Mensajes: 118
Re: Código Perl en base de datos
Es relativamente sencillo con PostgreSQL. Estudia, por ejemplo, la siguiente consulta SQL:

Syntax: [ Download ] [ Hide ]
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;


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

Syntax: [ Download ] [ Hide ]
Using sql Syntax Highlighting
  1. SELECT ejecutaperl(argumentos);


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.


Responder al tema  [ 10 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO