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 :

Initialisation d'un tableau d'un record


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Par défaut Initialisation d'un tableau d'un record
    Bonjour,

    Je suis débutante en PL/SQL et j'essaie de comprendre certaines choses dont l'initialisation d'un tableau.

    J'ai ceci en déclaration globale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type Classe IS record (t_eleves mon.numberTab);
    type Classes IS TABLE of Classe index by binary_integer;
     
    t_listdesClasses  Classes;
    Dans le code actuel, j'ai cette boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in 1..wb_t_listdesClasses.count
    loop
      wb_t_listdesClasses(m).t_eleves := mon.numbertab();
    end loop;
    1. Si je comprends bien, on initialise le tableau à nouveau pour chaque indice du tableau ? Est-ce correct?
    2. J'aimerai aussi savoir pour Classes qui est index par binary integer, cela suppose qu'il n'y a pas besoin d'initialisation, on peut affecter une valeur directement à l'index que l'on veut ?


    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    FOR i IN 1..wb_t_listdesClasses.count loop
    wb_t_listdesClasses(m).t_eleves := mon.numbertab();


    Vous utilisez la variable i pour la boucle et ensuite m pour l'index de la collection...
    Je doute que ce code fonctionne.
    Sinon, effectivement, vous pouvez donner n'importequel indice à une collection de type INDEX BY

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Par défaut rectification
    Je me suis trouvé dans les index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR i IN 1..wb_t_listdesClasses.count loop
    wb_t_listdesClasses(i).t_eleves := mon.numbertab();
    end loop;

  5. #5
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Un example:
    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
     
    SQL> set serveroutput on
    SQL> DECLARE
      2    TYPE T_R IS RECORD ( c1 VARCHAR2(10), c2 NUMBER(5) ) ;
      3    TYPE TT_R IS TABLE OF T_R INDEX BY binary_integer ;
      4    tab  TT_R;
      5  BEGIN
      6    FOR i IN 1 .. 5 LOOP
      7      tab(i).c1 := To_Char(i) ;
      8      tab(i).c2 := i ;
      9    END LOOP;
     10    Dbms_Output.put_line('tab(1) =' || tab(1).c1 || ',' || tab(1).c2);
     11  END;
     12  
     13  /
    tab(1) =1,1
    Procédure PL/SQL terminée avec succès.
    SQL>

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Par défaut merci
    j ai une autre demande qui découle de votre code.
    Par exemple j ai ceci comme déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Type Classe IS record (t_eleves mon.numberTab);
    type Classes IS TABLE of Classe INDEX BY binary_integer;
    A cette table *Classes*, je veux ajouter une colonne, est-ce possible ? car je dois rajouter un idClasse.

Discussions similaires

  1. Initialisation d'un tableau à plusieurs dimensions
    Par kinouseb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2007, 13h16
  2. Initialisation d'un tableau de pointeurs
    Par tintin72 dans le forum C++
    Réponses: 19
    Dernier message: 19/11/2006, 10h22
  3. Problème d'initialisation d'un tableau
    Par Premium dans le forum C
    Réponses: 13
    Dernier message: 31/05/2006, 14h48
  4. Débutant : initialisation d'un tableau
    Par lebokto dans le forum C++
    Réponses: 7
    Dernier message: 02/11/2005, 15h50
  5. Initialisation d'un tableau de type STRUCT
    Par Axiome dans le forum MFC
    Réponses: 4
    Dernier message: 06/09/2005, 10h58

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