1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    51
    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 : 51
    Points : 26
    Points
    26

    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 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 1 974
    Points : 2 972
    Points
    2 972

    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.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status

    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    51
    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 : 51
    Points : 26
    Points
    26

    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 567
    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 567
    Points : 11 419
    Points
    11 419

    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, 11h22
  2. NHibernate : Recharger une collection déjà initialisée
    Par frag0610 dans le forum NHibernate
    Réponses: 1
    Dernier message: 25/11/2008, 12h17
  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, 12h58
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 14h20
  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, 15h49

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