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

PL/SQL Oracle Discussion :

Oracle & Nested Table


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 52
    Points : 36
    Points
    36
    Par défaut Oracle & Nested Table
    Bonjour à tous,

    Je suis débutant sous Oracle, et là je me trouve confronté à des tables imbriquées.

    J'ai ma table A qui contient un champ B de type Nested Table.

    J'arrive à afficher pour chaque ligne de la table A, les lignes de la tables B.

    3 lignes :
    A1 B1
    A1 B2
    A1 B3

    J'aimerais savoir, si il y avait un moyen 'simple' d'avoir le résultat sur 1 seule ligne :

    A1 B1 B2 B3
    our
    A1 C1 (= B1;B2;B3)

    Voilà
    Merci à vous.

    Cdt
    Greg

  2. #2
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    A toi de juger si c'est "simple"

    table person = (name (pk), cars)
    name un VARCHAR2 et cars est une table imbriquée (CARS_TABLE)

    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
    declare
     temp CARS_TABLE := CARS_TABLE();
     param VARCHAR2(10) DEFAULT 'YOUSKY';
     val VARCHAR2(100);
    begin
      select cars
      into temp
      from person
      where name = param;
     
      FOR i IN 1..temp.COUNT LOOP
        val := val || temp(i) || ' ';
      END LOOP;
     
      dbms_output.put_line(param || '  ' || val);
    end;
    tu auras:
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 52
    Points : 36
    Points
    36
    Par défaut
    Merci rvfranck,

    En effet, j'étais parti sur cette solution

    Tu m'as donné la fin du code dont j'avais besoin.

    Merci encore.
    Bonne journée

  4. #4
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Cela me fait toujours plaisir d'aider
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDBC][ORACLE] Lire une "nested table"
    Par chadec4 dans le forum JDBC
    Réponses: 1
    Dernier message: 13/02/2006, 09h55
  2. pb trigger avec nested table
    Par evlad dans le forum Oracle
    Réponses: 1
    Dernier message: 29/12/2005, 12h04
  3. Réponses: 2
    Dernier message: 19/10/2005, 14h23
  4. Réponses: 2
    Dernier message: 13/10/2005, 19h04
  5. [access][oracle]exporter une table
    Par thief dans le forum JDBC
    Réponses: 10
    Dernier message: 14/07/2005, 13h34

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