Il manque la sortie de sqlplus, c'est-à-dire une ligne "exit" ou "quit".
Pour débugguer et voir les erreurs, il faudrait enlever le "-s" (silent).
Pour débugguer, on pourrait essayer avec un simple Select sysdate from dual
D'habitude, j'emploie des "/" au lieu de ";", mais peut-être que ça passe aussi avec des points-virgules.
J'essayerais :
$fonc = qx{sqlplus $user/$pass\@$base
exec SYS.DBMS_IJOB.BROKEN($job,$broken)
/ commit
/
exit
/
}; |
(Je n'ai jamais fait de sqlplus avec perl, mais j'en ai fais beaucoup dans des batch Unix ordinaires.)