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 :

Utilisation d'un tableau IS TABLE OF


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut Utilisation d'un tableau IS TABLE OF
    Bonjour,

    je rempli un tableau de la manière suivante :

    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
    DECLARE
     
    TYPE myTableType IS TABLE OF NUMBER INDEX BY LONG;
    myTable myTableType;
     
    BEGIN
     
    FOR C1 IN (SELECT p.householdid hhId, MAX(p.PROFILID)+1 maxP
    FROM PROFIL p JOIN household h
    on p.householdid = h.householdid
    WHERE h.householddept = 75
    GROUP BY p.HOUSEHOLDID) LOOP
     
    myTable(C1.hhId) := C1.maxP;
     
    IF myTable.exists(3) then
     
    dbms_output.put_line('Valeur : ' || myTable(3));
     
    ELSE
    dbms_output.put_line('Valeur non trouvée');
     
    END IF;
     
     
    END LOOP;
     
    END;
    Comme vous pouvez le voire, l'indice du tableau n'est pas n, n+1, (n+1)+1... mais l'indice prend la valeur d'un identifiant de table et la valeur de la colonne courante du tableau, la valeur max(profilid).

    Mon code fonctionne mais je voulais savoir si il y avait une meilleur façon de remplir mon tableau du genre :

    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
    DECLARE
    
    TYPE myTableType IS TABLE OF NUMBER INDEX BY LONG;
    myTable myTableType;
    
    BEGIN
    
    SELECT MAX(p.PROFILID)+1 maxP
    BULK COLLECT INTO myTable(p.HOUSEHOLDID)
    FROM PROFIL p JOIN household h
    on p.householdid = h.householdid
    WHERE h.householddept = 75
    GROUP BY p.HOUSEHOLDID;
    
    myTable(C1.hhId) := C1.maxP;
    
    IF myTable.exists(3) then
    
    dbms_output.put_line('Valeur : ' || myTable(3));
    
    ELSE
    dbms_output.put_line('Valeur non trouvée');
    
    END IF;
    
    END;
    Merci d'avance de l'aide que vous pourriez m'apporter.
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    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 611
    Par défaut
    Je ne pense pas.
    You cannot bulk collect into an associative array that has a string type for the key.

  3. #3
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Arf c'est bien dommage.

    Enfin tan pis je vais laisser comme tel alors.
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

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

Discussions similaires

  1. [Tableaux] Utilisation d'un tableau
    Par Skippy1 dans le forum Langage
    Réponses: 7
    Dernier message: 04/01/2007, 09h07
  2. probléme dans l'utilisation d'un tableau
    Par hamoudasafira dans le forum C++
    Réponses: 10
    Dernier message: 13/12/2006, 08h50
  3. [Tableaux] utilisation d'un tableau à deux dimensions
    Par calitom dans le forum Langage
    Réponses: 1
    Dernier message: 28/11/2006, 18h01
  4. [C#]Quel objet utiliser pour un tableau..
    Par Jinroh77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/10/2006, 20h22
  5. Réponses: 6
    Dernier message: 06/01/2006, 10h17

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