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 :

comment mettre une hierarchie sur 1 ligne ?


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut comment mettre une hierarchie sur 1 ligne ?
    Bonjour

    comment passser d'une requete hierarchique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select level,type_pere,num_pere,num_fils,type_fils
    from matable
    start with num_pere is null and type_pere='SYSTEM'
    connect by prior num_fils=num_pere
    qui renvoie une branche sur plusieurs lignes
    level 1..........
    level 2.............
    level 3 ..........
    à un select "simple" qui renvoie chaque branche sur une meme ligne ?
    level1,level2,level3
    level1,level2.....


    en oracle 8i est ce possible?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Utilisez la fonction SYS_CONNECT_BY_PATH dans votre select.

    LaurentSchneider apporte des précisions sur son blog quant à l'utilisation de cette fonction en 8i :
    http://laurentschneider.blogspot.com...danger-to.html

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2006
    Messages : 188
    Par défaut
    champs 'SYS_CONNECT_BY_PATH' inconnu ?

    je suis en oracle V8.1.7.3

    je crois qu'il faudra attendre la proche migration en V10

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    dans mon blog je mentionne "_new_connect_by_enabled", mais il est possible que ce paramètre soit apparu en 8.1.7.4.

    Sinon en plsql, sans connect by...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create or replace function lsc_f(empno number) return varchar2 is
      emp lsc_emp%rowtype;
    begin
      select * into emp from lsc_emp where empno=lsc_f.empno;
      return case when emp.mgr is not null then lsc_f(emp.mgr) end||'/'||emp.ename;
    end;
    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select empno, ename, lsc_f(empno) str from lsc_emp;
    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
         EMPNO ENAME      STR                           
    ---------- ---------- ------------------------------
          7839 KING       /KING                         
          7566 JONES      /KING/JONES                   
          7902 FORD       /KING/JONES/FORD              
          7369 SMITH      /KING/JONES/FORD/SMITH        
          7698 BLAKE      /KING/BLAKE                   
          7499 ALLEN      /KING/BLAKE/ALLEN             
          7521 WARD       /KING/BLAKE/WARD              
          7654 MARTIN     /KING/BLAKE/MARTIN            
          7782 CLARK      /KING/CLARK                   
          7788 SCOTT      /KING/JONES/SCOTT             
          7844 TURNER     /KING/BLAKE/TURNER            
          7876 ADAMS      /KING/JONES/SCOTT/ADAMS       
          7900 JAMES      /KING/BLAKE/JAMES             
          7934 MILLER     /KING/CLARK/MILLER

Discussions similaires

  1. Réponses: 10
    Dernier message: 23/02/2008, 20h01
  2. Réponses: 4
    Dernier message: 16/03/2006, 18h50
  3. [FPDF] Comment mettre une annotation sur un Pdf déjà existant en PHP
    Par shequet dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/09/2005, 12h23
  4. [JBouton] Comment mettre une image sur un bouton ?
    Par Kyti dans le forum Composants
    Réponses: 6
    Dernier message: 11/03/2005, 17h08
  5. [Info]Comment mettre une servlet sur le web?
    Par fred9510 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/08/2004, 17h40

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