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

SQL Oracle Discussion :

Requête SQL pour fabriquer un graphe [Débutant(e)]


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Requête SQL pour fabriquer un graphe
    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:
    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
     
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai pu évoluer dans ma réflexion:
    Je vais sans doute utiliser un algorithme PL/SQL qui utilise la théorie des graphes (algorithme de parcours des graphes en profondeur ou en largeur?)
    Puis je vais afficher en sortie le nom des variables et ce qu'elles contiennent dans un fichier au format CSV
    Ce fichier CSV aura pour chaque ligne un "objet", qui aura pour colonne les infos suivantes:
    Niveau du noeud , clePrimaire , cleEtrangere , infoDivers , clePrimaireDuFils , clePrimaireDuPere, ...
    donc chaque ligne contiendra les info de l'objet en question ainsi que les informations relatif à l'objet père et à l'objet fils.
    Je pense que c'est jouable

  3. #3
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    vous avez penser à utiliser une cte recursive ?
    http://sqlpro.developpez.com/cours/s...te-recursives/

Discussions similaires

  1. [Débutant] Requête SQL pas si simple (enfin pour moi)
    Par danielpyrenees dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2014, 00h14
  2. [débutante] Requête SQL
    Par a_nana dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/11/2005, 21h51
  3. Requête SQL pour afficher un tri
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2005, 15h27
  4. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21
  5. Requêtes SQL pour access
    Par cciocc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/04/2005, 08h45

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