Bonjour à tous,
Je suis débutant en SQL et avec ORACLE et je m'excuse par avance si je n'ai pas posté dans le bon forum,
Nous avons au travail une base de donnée ORACLE 11g qui contient des informations que l'on souhaiterais visualiser sous forme de graphe qui va avoir plusieurs "niveaux" et de très nombreuses feuilles.
Nous souhaiterions pour cela extraire les données issus de plusieurs tables, qui ont une clé permettant de les relier entres elles, la visualisation sous forme de graphe serait idéale.
La méthode consisterais à extraire les données sous forme d'un fichier XML en sortie que je générerais grâce à SQL développer, puis ce fichier XML serait interprété par du JavaScript...
La question que je me pose est de savoir comment extraire les données:
-En effet une requête SQL imbriqué, en plus du problème de la lourdeur du traitement que cela pourrait impliquer pour un gros graphe, pose le problème du cas ou 2 informations issus par exemple de 2 feuilles d'un nœud ne peut être transmis à la requête supérieure, exemple:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
select *
from
tab1
where
tab1.clePrimaire=
(
select tab2.i,fo
from
tab2
where
tab2.cleEtrangere=
(
select tab3.info
from tab3
where
tab3.cle='info'
')); |
Ce code me retourne l'erreur suivante:
ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
-J'ai donc pensé à faire cela avec PL/SQL, qui me permettrait de gérer des variables cela palierais à ce problème...
Je suis en train de construire une requête en ce sens mais là je me rend compte que je n’ai pas encore réfléchis à la structure de donnée à utiliser:
En effet sous quelle forme faut il représenter les données en sortie pour le fichier XML?
J'ai vu que l'on pouvait faire cela en représentant les données sous forme intervallaire: http://sqlpro.developpez.com/cours/arborescence/
Voilà j'aimerais avoir votre avis, comment représenter les données que j'aurais extrait de ces tables pour qu'à la sortie, ils puissent être représentés dans un format représentant un graphe? (et au final transformés en fichier XML)?
Je vous remercie par avance pour vos conseils.
Partager