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 :

Récupérer le resultat d'un requête dans un tableau: une "case" par champ résultat


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut Récupérer le resultat d'un requête dans un tableau: une "case" par champ résultat
    Bonjour,

    Je cherche à récupérer le résultat d'une requête dans un tableau, via un curseur, mais sans passer par un type "record":

    Exemple:

    Avec un curseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CURSOR cur_exemple IS
    SELECT col_A, col_B, col_C, .... 
    FROM ma_table;
    J'aimerais pouvoir récuperer chaque enregistrement obtenu dans un tableau,
    mais sous la forme:
    TAB(1) = col_A
    TAB(2) = col_B
    TAB(3) = col_C
    ...
    Afin de pouvoir boucler dessus...

    Est-ce possible sans passer par quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FETCH cur_exemple into TAB(1), TAB(2), TAB(3)...
    J'ai parcouru le forum et la FAQ en long en large et en travers sans trouver de solution à mon probleme...

    Merci d'avance....

  2. #2
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    As-tu regarder du coté des instructions BULK COLLECT et FORALL ?
    Au fait, n'aurais-tu pas oublier de spécifier ta version oracle ?

    LBO72.

  3. #3
    Membre expérimenté Avatar de Loyd1974
    Profil pro
    Inscrit en
    Août 2007
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 176
    Par défaut
    Cela ressemble un peu à du pivot ce que tu veux faire : exemple pivot

    Si ce n'est pas cela, peux-tu exprimer un peu plus clairement ton besoin?
    J'ai l'intuition que ton nombre de colonnes doit être dynamique car sinon, je vois pas où serait la difficulté :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    DECLARE
       CURSOR C IS
          SELECT ...
       TYPE TAbTYPE is TABLE OF C%ROWTYPE;
       TABREC TABTYPE;
       TYPE COLTYPE IS TABLE OF TABLE.COLONNE%TYPE;
       COLRESULT COLTYPE;
    BEGIN
       OPEN C;
       FETCH C BULK COLLECT INTO TABREC;
       FOR i IN TABREC.FIRST..TABREC.LAST LOOP
          COLRESULT.EXTEND;
          COLRESULT(COLRESULT.LAST) := TABREC(i).COL1;
          COLRESULT.EXTEND;
          COLRESULT(COLRESULT.LAST) := TABREC(i).COL2;
          COLRESULT.EXTEND;
          COLRESULT(COLRESULT.LAST) := TABREC(i).COL3;
          ...
       END LOOP;
       CLOSE C;
    END;
     
    ou encore
     
    BEGIN
       OPEN C;
       LOOP 
          COLRESULT.EXTEND(NB_COL);
          FETCH C INTO COLRESULT(COL_RESULT.LAST - NB_COL), COLRESULT(COL_RESULT.LAST - NB_COL+1), COLRESULT(COL_RESULT.LAST - NB_COL+2), ....;
        END LOOP;
        CLOSE C;
    END;

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

Discussions similaires

  1. [MySQL] Récupérer le résultat d'une requête dans un tableau à une seule dimension
    Par Robjerey dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/09/2014, 16h20
  2. Resultat requête dans un tableau
    Par Invité(e) dans le forum ASP
    Réponses: 2
    Dernier message: 23/04/2008, 00h32
  3. Récupérer le contenu de la requête dans une variable
    Par cgonzalez dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2007, 11h44
  4. [MySQL] récupérer le résultat d'une requête dans un tableau
    Par faty2 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/05/2007, 16h22

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