gros problème avec DBD::Oracle
Bonjour à tous,
Ayant décidé d'utiliser perl et donc DBD::Oracle pour réaliser plusieurs scripts d'administration pour une de nos base oracle en 10g, je me retrouve devant un problème que je n'arrive pas à comprendre.
Le problème est le suivant :
j'essaye de me connecter en sysdba à ma BDD
je lance une requête sql, celle ci fonctionne.
Mais ensuite si dans mon script j'appelle des commandes systèmes : le code retour est toujours "-1" ( erreur système : No child processes)
Du coup mes scripts remonte des alertes alors quand réalité toutes les commandes systèmes fonctionnent correctement ....
Le script suivant reproduit le soucis sur ma machine :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#!/usr/bin/perl
use DBD::Oracle qw(:ora_session_modes);
my $dsn = "dbi:Oracle:"; # no dbname here
print "TWO_TASK non défini \n" if (not defined($ENV{TWO_TASK}));
print "ORACLE_SID : $ENV{ORACLE_SID} \n";
my $dbh = DBI->connect($dsn, "", "", { ora_session_mode => ORA_SYSDBA });
$dbh->{RaiseError} = 1;
## Lancement commande bateau pour reproduire le soucis
my $sth = $dbh->prepare( "select sysdate from dual" );
$sth->execute();
my $date=$sth->fetchrow();
print "La date est $date \n";
$sth->finish();
$dbh->disconnect();
my $ret=system("date");
## renvoi normalement 0 mais j'obtient -1
print "retour : $ret !!!!!"; |
en lancant ce script j'obtient ceci :
Citation:
TWO_TASK non défini
ORACLE_SID : JKD
La date est 30-JUL-08
mercredi, 30 juillet 2008, 13:47:27 MEST
retour : -1
Obtenez vous la même chose ?
Ou j'ai un soucis dans la version de perl/DBI/DBD installé ?
Information sur mon système :
Citation:
Solaris 10 x86
Perl 5.8.6
perl -MDBI -e 'DBI->installed_versions'
Perl : 5.008006 (i86pc-solaris-thread-multi)
OS : solaris (2.10)
DBI : 1.42
DBD::Sponge : 11.10
DBD::Proxy : 0.2004
DBD::Oracle : 1.15
DBD::File : 0.30
DBD::ExampleP : 11.12
DBD::DBM : 0.01