IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

gros problème avec DBD::Oracle


Sujet :

SGBD Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Par défaut 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 : 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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Par défaut
    Au cas ou quelqu'un rencontrerais le même problème que moi :

    Il est normal d'obtenir "-1" lorsqu'on utilise DBI avec une connection locale et des appels systèmes.
    (ceci est dû au fait que la librairie oracle modifie certain signal , du moins en 10gR2 je n'ai pas testé les versions inférieures)


    Pour éviter ce problème , 2 solutions :

    - Remettre le signal $SIG{CHLD} à sa valeur par défaut (apparemment cela peut impacter la librairie oracle, a utiliser avec précaution)
    $SIG{CHLD}='DEFAULT';
    Pour ma part, je le fais après mettre déconnecter de DBI, cela fonctionne bien pour le moment.

    - Ou bien ajouter ceci dans le fichier sqlnet.ora :
    BEQUEATH_DETACH = yes
    (non testé, ce fichier est générique ds mon entreprise, je ne peux pas y toucher)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Message (Oracle 10g)
    Par Gouzoul dans le forum Oracle
    Réponses: 2
    Dernier message: 13/04/2006, 17h00
  2. Gros problème avec les colations
    Par scaleo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/11/2005, 10h36
  3. problème avec job oracle
    Par cyberyan dans le forum Oracle
    Réponses: 3
    Dernier message: 29/03/2005, 19h16
  4. Gros problème avec la facturation de Tiscali
    Par Harry dans le forum Dépannage et Assistance
    Réponses: 5
    Dernier message: 21/10/2004, 19h55
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo