|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : février 2006 Messages : 167 ![]() |
Bonjour,
Je ressors le sujet ... Bravo laurent pour ton explication. je serai intéressé par le même genre de problématique mais cette fois ci en 10g. Saurais tu m'expliquer en quoi la solution est simplifiée en 10g ? Merci d'avance. Magic Charly |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
au lieu de faire un substr et un connect_by_path, tu fais juste un connect_by_root
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : février 2006 Messages : 167 ![]() |
Bonjour,
Je souhaiterais construire un select "intelligent" qui me retourne les records dans un ordre hierarchique. exemple A -B --E ---H ---I --F -C --G -D J'ai une table de la forme ID - ID_RACINE - ID_PERE - LEVEL A - A - A - 1 B - A - A - 2 C - A - A - 2 D - A - A - 2 E - A - B - 3 F - A - B - 3 G - A - C - 3 H - A - E - 4 I - A - E - 4 J'essaie d'obtenir en retour mes enregistrements dans l'ordre A B E H I F C G D Sachant que l'ordre dans lequel est traité les branches n'a aucune importance. Je m'explique le résultat précédent a la même valeur pour moi que : A C G D B F E I H J'ai regardé beaucoup de choses sur la gestion d'arborescence mais je pense que ce que je veux faire peut probablement se faire simplement. Auriez-vous déjà été confrontés a ce genre de cas. Merci de votre aide |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
les connect by prior son tes amis
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
ce qui est étrange dans ta table c'est ta ligne a-a (comment peut-on être son propre fils)
Si on supprime ta ligne <A;A>, alors Code :
|
||
|
00
|
|
|
#6 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 | ||||
|
Nouveau Membre du Club
![]() Inscription : février 2006 Messages : 167 ![]() |
Code :
ex : ID - ID_RACINE - ID_PERE - LEVEL A - A - A - 1 B - A - A - 2 C - A - A - 2 D - A - A - 2 E - A - B - 3 F - A - B - 3 G - A - C - 3 H - A - E - 4 I - A - E - 4 J - A - W - 4 K - A - J - 5 L - A - J - 5 Je pensais à une requête recursive qui selectionnerait l'élément non trié de l'arborescence de niveau le plus faible (+ proche de la racine) et lancer la requête précédente avec Code :
marquer les enregistrements renvoyés par cette nouvelle opération pour indiquer qu'ils sont "triés" et réitérer le process jusqu'à ce qu'il n'y ait plus d'éléments non marqués L'idée me parait en théorie pas mauvaise mais ... disons que je ne sais pas trop si en PL/ SQL c'est possible et surtout sur quelles pistes partir pour mettre en oeuvre cette requête recursive. Votre aide me sera tres précieuse Magic CHarly |
||||
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
petit ménage fait par mes soins pour rassembler les posts
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com