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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 :
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:roxy : 0.2004
DBD::Oracle : 1.15
DBD::File : 0.30
DBD::ExampleP : 11.12
DBD:BM : 0.01