1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2017
    Messages : 31
    Points : 14
    Points
    14

    Par défaut Initialiser une collection

    Bonjour,

    Comment peut on initialiser une liste dans le for loop avant le .extend ?


    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
    	TYPE TYPE_LISTE IS TABLE OF MA_TABLE.MON_CHAMPS%TYPE;
     
    	MA_LISTE TYPE_LISTE := TYPE_LISTE();
     
    	CURSOR C IS
    		SELECT MON_CHAMPS
    		FROM MA_TABLE1;
     
    BEGIN  
          FOR R IN C
          LOOP
            MA_LISTE.EXTEND;
            MA_LISTE(MA_LISTE.COUNT) := R.MON_CHAMPS;
          END LOOP;
    END;
    Merci,

  2. #2
    Membre émérite
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    décembre 2004
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 958
    Points : 2 959
    Points
    2 959

    Par défaut

    Salut,
    J'aurais plutôt écris qq chose comme:
    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
     
     
    DECLARE
    	TYPE TYPE_LISTE IS TABLE OF MA_TABLE.MON_CHAMPS%TYPE;
     
    	MA_LISTE TYPE_LISTE;
     
    	CURSOR C IS
    		SELECT MON_CHAMPS
    		FROM MA_TABLE1;
     
    BEGIN  
    MA_LISTE := TYPE_LISTE();
     
          FOR R IN C
          LOOP
            MA_LISTE.EXTEND;
            MA_LISTE(MA_LISTE.LAST) := R.MON_CHAMPS;
          END LOOP;
    END;
    initialiser une liste dans le for loop
    Pas sur que cela soit une bonne idée, tu initialiserais ta collection a chaque tour de boucle alors?

    @+
    Aux persévérants aucune route n'est interdite
    Current Status

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2017
    Messages : 31
    Points : 14
    Points
    14

    Par défaut

    Merci.

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    5 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 5 537
    Points : 11 337
    Points
    11 337

    Par défaut

    Quand les éléments de la collection provient d'une requête sql la solution est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select colonne Bulk Collect Into collection From Table Where ...
    Si le nombre des éléments dépasse environ 5000 éléments alors travaillez par lot.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/04/2012, 10h22
  2. NHibernate : Recharger une collection déjà initialisée
    Par frag0610 dans le forum NHibernate
    Réponses: 1
    Dernier message: 25/11/2008, 11h17
  3. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

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