Antes que todo me presento, soy un usuario que a utilizado mucho este sitio web, muchos de los problemas que he presentado en mi vida laboral los resolví gracias a este foro, nunca me había visto en la necesidad de postear, ya que mis dudas ya estaban respondidas en el foro.
Les planteo el problema que estoy presentando:
Tengo un script Perl cuya funcionalidad es retornar 6 valores. El primer valor corresponde a un número que va buscar a una base de datos Oracle y los otros 5 valores son números aleatorios.
Si yo ejecuto el script en línea de comandos:
C:\Perl\bin\perl.exe C: \numeros.pl
el script funciona perfecto retornando los 6 valores. El propósito de este script es que sea ejecutado por otra aplicación. Esta aplicación dibuja los valores que retorna el script, pero al configurar esta aplicación para que ejecute el script arroja un error, diciendo que la salida del script es errónea. Si yo le envío 6 números aleatorios a esta aplicación omitiendo el de la base de datos, los dibuja sin problemas.
Mi petición es la siguiente: si pueden analizar mi script e indicarme si la sintaxis es correcta, o si hay alguna forma de ver los errores que puede retornar el código. Como mencioné anteriormente, si yo ejecuto el script en línea de comandos no arroja ningún problema y me trae el valor de la base de datos más los otros 5 valores aleatorios.
A continuación adjunto las dos formas que he intentado realizar el retorno de este valor.
script 1:
Using perl Syntax Highlighting
- #!C:\Perl\bin\perl.exe -w
- use DBI;
- use strict;
- my $user='dbuser';
- my $password='dbconn';
- my $host = '190.4.9.5';
- my $port= 1531;
- my $sid='stergr';
- my $b=2;
- my $c=3;
- my $d=4;
- my $e=5;
- my $f=6;
- my $valor;
- my $datos;
- my $driver;
- my $dbh;
- my $sth;
- $driver="dbi:Oracle:host=$host;sid=$sid;port=$port";
- $dbh= DBI -> connect("$driver",$user,$password);
- $sth = $dbh->prepare("select /*+index (eb_tran_log,eb_tran_logi12)*/count(tran_time) tph from eb_tran_log where tran_time between (sysdate - 3600/(24*60*60)) and (sysdate - 1/(24*60*60)) and device_nbr in (509,510)");
- $sth->execute();
- while(($datos)=$sth->fetchrow_array)
- {
- $valor=$datos;
- }
- $sth->finish();
- $dbh->disconnect;
- print("$valor $b $c $d $e $f \n");
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
script 2
Using perl Syntax Highlighting
- #!C:\Perl\bin\perl.exe -w
- use strict;
- my $var=`sqlplus -S dbuser/dbconn\@TEST1 \@C:\\selectvalor.sql`;
- my $val=$var * 1;
- my $b=2;
- my $c=3;
- my $d=4;
- my $e=5;
- my $f=6;
- print ("$val $b $c $d $e $f \n");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Atento a sus comentarios,
¡¡¡¡Muchas Gracias!!!!