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

PL/SQL Oracle Discussion :

Arbre et récursivité


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Arbre et récursivité
    Bonjour à tous,

    Je vous expose mon problème.
    J'ai une table de transcodage qui se présente comme suite:

    PERE FILS
    A       B
    A       C
    C       E
    C       I
    I        I
    E       F
    F       F
    B       B
    G       H
    H       H
    A partir d'une requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select pere from matable inner join autretable where autretable.pere = matable.pere
    récupérant plusieurs pères initiaux, je dois établir la liste des fils finaux en ayant toujours le lien entre un père et ses fils.

    Exemple du comportement attendu:
    Les PERES => A et G, devront donner respectivement les FILS => [B,F] et H

    Je ne sais pas par où commencer avec les requêtes récursives ou les tableaux.
    Si quelqu'un a une idée.

    Par avance, merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Avec CONNECT BY.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Avec cette requête je n'ai malheureusement que le premier niveau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select level, pere, fils
    from  matable
    start with  pere= 'A'
    connect by prior  pere= fils;
     
    LEVEL  pere fils
     
    1	A	B
    1	A	C
     
    Et dans ce cas j'ai une boucle infinie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select level, pere, fils
    from  matable
    start with  pere= 'A'
    connect by pere= fils;

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Vous l'avez écrit dans le mauvais sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        SELECT connect_by_root pere as root, fils
          FROM matable
         WHERE connect_by_isleaf = 1
    START WITH pere in ('A', 'G')
    CONNECT BY NOCYCLE prior fils = pere;
     
    ROOT FILS
    ---- ----
    A    B    
    A    F    
    A    I    
    G    H

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup.

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

Discussions similaires

  1. Récursivité tableaux multidimensionnel en arbre
    Par nolookpass8 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 22/08/2014, 12h02
  2. arbre binaire (problème de récursivité)
    Par allomona dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 11/06/2012, 23h10
  3. Construction d'un arbre - récursivité
    Par Gecko dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/09/2011, 16h12
  4. Parcours d'arbre sans récursivité
    Par Morvan Mikael dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 12/04/2005, 13h57
  5. arbre de parcour d'arborescence windows
    Par chupachoc dans le forum Composants
    Réponses: 7
    Dernier message: 09/09/2002, 08h09

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