database - servidores - ¿Cómo puedo usar un servidor de base de datos desde un script Perl CGI?
servidores web libro pdf (2)
Sí, puedes usar los módulos DBI y DBD :: Oracle .
Sin embargo, hay algunos problemas con Oracle. Recuerdo algunos juegos y diversión con Oracle 8, por lo que es posible que ya no sean aplicables, pero sí requirió establecer variables ENV, como ORACLE_HOME, ORACLE_BASE y ORACLE_SID en algunos casos.
El DBD :: Oracle doc entra en esto y también menciona otra variable ENV TWO_TASK. Así que ponerlo a trabajar puede depender de ...
- qué versión de Oracle tienes funcionando
- si tiene escucha activa (que creo que necesita para el acceso a la red como CGI?)
- qué versión SQL * Net usa.
Parece desalentador, pero todo lo que probablemente necesite es agregar estas variables ENV en el servidor web (iPlanet era lo que estaba usando en ese momento). Alternativamente, desde DBD :: Oracle doc da ...
BEGIN {
$ENV{ORACLE_HOME} = ''/home/oracle/product/10.x.x'';
$ENV{TWO_TASK} = ''DB'';
}
$dbh = DBI->connect(''dbi:Oracle:'',''scott'', ''tiger'');
# - or -
$dbh = DBI->connect(''dbi:Oracle:'',''scott/tiger'');
PD. ¡Lo anterior supone que está ejecutando script CGI en el mismo servidor que Oracle! Si no, esas variables ENV son superfluas y puedes hacer esto (extraído de un antiguo script mío) ...
my $db = DBI->connect("dbi:Oracle:host=$host;sid=$database", $user, $pass,
{ RaiseError => 0, PrintError => 0 } )
or croak( "Unable to connect to DB - $DBI::errstr" );
Sin embargo, recuerdo haber tenido que ajustar algo como TNLISTENER.CONF en el servidor de Oracle (esto fue hace algunos años, así que la memoria me falla un poco) y estoy bastante seguro de que necesitas descargar alguna biblioteca cliente de Oracle (que puedes obtener de su sitio).
Mi programa ya funciona, tengo Perl (Ventana GUI) donde puedo ingresar datos, los datos pasan a la página web (usando el servidor Tomcat, JSP) y luego los guardo en la base de datos de Oracle. Lo que quiero es hacer que el parámetro de búsqueda (webapp) recupere / extraiga datos de la base de datos de Oracle utilizando Perl CGI. ¿Es posible? ¿O alguna sugerencia para resolver mi programa? ¡Gracias!:-)
¿Alguna razón específica para la mezcla en tecnologías? ¿Por qué no usar un servlet / JSP?
Si debe usar Perl, debe elegir qué servidor web ejecutará su script de Perl.
Normalmente, esto sería Apache usando mod_perl .
Pero si solo tiene la intención de utilizar esto para unos pocos scripts de administrador, puede ejecutar Perl desde tomcat como se describe aquí .
Una vez que haya logrado ejecutar un simple script en perl, entonces buscaría usar DBI / DBD :: Oracle para acceder a su base de datos.
Espero que esto ayude...