Bonjour,
Je vous expose mon problème :
Je suis en Oracle 9i, et j'ai une base de données avec un table où les données sont hiérarchisées selon le shéma suivant.
Ce que je souhaite faire, c'est afficher ma hiérarchie comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ID || ID_PARENT || NOM || POSITION 1 || 0 || nom || 1 2 || 0 || nom || 2 3 || 1 || nom || 1 4 || 1 || nom || 2 5 || 3 || nom || 1 6 || 2 || nom || 1 7 || 4 || nom || 1 8 || 0 || nom || 3 9 || 1 || nom || 3 10 || 4 || nom || 2
Autrement dit, la hiérarchie se fait entre ID_PARENT et ID, et ensuite je souhaite trier par position.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ID || ID_PARENT || NOM || POSITION 1 || 0 || nom || 1 3 || 1 || nom || 1 5 || 3 || nom || 1 4 || 1 || nom || 2 7 || 4 || nom || 1 10 || 4 || nom || 2 9 || 1 || nom || 3 2 || 0 || nom || 2 6 || 2 || nom || 1 8 || 0 || nom || 3
J'ai testé la requête suivante :
mais j'ai l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from MA_TABLE start with ID_PARENT=0 connect by ID_PARENT=prior ID order by POSITION
J'ai donc pensé à utiliser le mot clef levelboucle CONNECT BY dans les données utilisateur
mais j'ai la même erreur. Où est mon erreur ? Je ne trouve pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from MA_TABLE start with ID_PARENT=0 connect by ID_PARENT=prior ID order by level||POSITION
Merci de votre aide
Partager