Perl - Error connecting sqlplus

   
Vista:

Error connecting sqlplus

Publicado por Arturo (1 intervención) el 22/03/2010 19:41:48
Hola a todos,

Soy nuevo en el mundo del Perl y ando un poco estancado y a ver si alguien puede ayudarme con el siguente error que tengo al ejecutar mi script.

En el siguiente código hago una conexión con sqlplus (he visto algún script como referencia para saber como hacerlo) pero la salida de esta conexión me dice que no se conecta realmente a la DB y no entiendo el porque.

Código:

# Execute stored procedure using sqlplus

open( file_handler, ">temp_commands.sql") or die "Can't Create temp_commands.sql: $!";

print file_handler "CALL post_migration_updates \n";

$sql_command = "sqlplus -silent ". "$db_user/$db_pswd\@$data_source exec"
. " post_migration_updates('$fields[0]','$fields[1]','$fields[2]','$fields[3]','$fields[4]','$fields[5]','$fields[6]') <temp_commands.sql";

if ($g_verbose) {
print STDOUT "\n****** Calling sqlplus as follows:\n";
print STDOUT "$sql_command";
}

close(file_handler);

$sql_output = `$sql_command`;
$exitcode = $?;

print STDOUT "\n*$exitcode\n";

unlink "temp_commands.sql";

if ($g_verbose) {
print STDOUT "\n****** Output of sqlplus follows:\n";
print STDOUT "$sql_output\n";
}

# This check to test whether the client sqlplus was invoked properly or not.
if(length($sql_output) == 0) {
print STDOUT "sqlplus client not invoked properly \n";
print STDOUT "$program_name: Processing FAILED\n";
exit $FAILURE;
}

Y la salida es la siguiente:

****** Calling sqlplus as follows:
sqlplus -silent orincon/orincon@SRSBBMD exec post_migration_updates('SERVICE_cabreraa_4','11/11/11','msisdn','cabreraa_4 1','contract_id','service_laber','sim_type
') <temp_commands.sqlsh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `sqlplus -silent cabreraa/cabreraa@SRRBRMD exec post_migration_updates('SERVICE_cabreraa_4','11/11/11','msisdn','cabreraa_4 1','contract_id','service_laber','sim_type'

*512

****** Output of sqlplus follows:

sqlplus client not invoked properly
Post Migration Script: Processing FAILED

Es decir, obtengo como retorno el 512, que no encuentro lo que es y he comprobado que si ejecuto manualmente la sentencia sqlplus con ese user, pwd y alias pues funciona. He comprobado que la sentencia sqlplus no se direcciona al fichero temp_commands.sql tal y como está en el código, luego ando algo perdido de ideas como podéis ver.

Muchas gracias por adelantado a todos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error connecting sqlplus

Publicado por Joaquin Ferrero (2 intervenciones) el 04/04/2010 15:11:24
El error es claro: hay un error de sintaxis en el fichero temp_commands.sqlsh, en la línea 1. Lo que no sabemos es lo que contiene.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar