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 :
en lancant ce script j'obtient ceci :
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 !!!!!";
Obtenez vous la même chose ?TWO_TASK non défini
ORACLE_SID : JKD
La date est 30-JUL-08
mercredi, 30 juillet 2008, 13:47:27 MEST
retour : -1
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
Partager