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

Oracle Discussion :

[8i][forms 6i] nested table


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [8i][forms 6i] nested table
    Bonjour tout le monde,

    Sous forms 6i, je souhaite créer un tableau de VARCHAR2 dont la taille n'est pas connue à l'avance.
    D'après ce que j'ai vu et compris sur la doc officielle, une solution idéale consisterait à utiliser une nested table.

    J'arrive à déclarer une nested table mais je bloque sur l'utilisation d'un constructeur vide et l'assignation d'un nombre quelconque de valeurs.

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE
      TYPE ROSTER IS TABLE OF VARCHAR2(15);
      NAMES ROSTER := ROSTER('PAT');
    BEGIN
      NAMES(1) := 'BOB';
      DBMS_OUTPUT.PUT_LINE(NAMES(1));
    END;
    produit :
    BOB

    PROCÉDURE PL/SQL TERMINÉE AVEC SUCCÈS.
    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE
      TYPE ROSTER IS TABLE OF VARCHAR2(15);
      NAMES ROSTER;
    BEGIN
      NAMES(1) := 'BOB';
      DBMS_OUTPUT.PUT_LINE(NAMES(1));
    END;
    produit
    DECLARE
    *
    ERROR À LA LIGNE 1 :
    ORA-06533: SUBSCRIPT BEYOND COUNT
    ORA-06512: AT LINE 5
    Remarque : j'ai bien trouvé une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      1  DECLARE
      2    TYPE Roster IS TABLE OF VARCHAR2(15) INDEX BY BINARY_INTEGER;
      3    names Roster;
      4  BEGIN
      5    names(1) := 'BOB';
      6    dbms_output.put_line(names(1));
      7* END;
      8  /
    BOB
     
    Procédure PL/SQL terminée avec succès.
    mais ce n'est plus une nested table mais un associative array.

    Comment faire pour assigner à une nested table un nombre quelconque de valeurs sans avoir à spécifier de taille initiale ?
    Merci à vous tou(te)s

  2. #2
    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
    Par défaut, une nested table ne possède aucun élément. Une fois qu'elle a été initialisée, vous pouvez l'étendre avec l'instruction .EXTEND

    http://sheikyerbouti.developpez.com/pl_sql/?page=Chap5

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Grâce au lien que vous m'avez indiqué j'ai compris mon erreur : extend ne s'applique pas sur un associative array mais est obligatoire sur une nested table dans le cas où la taille maximale n'est pas connue à l'avance.

    La prochaine fois je lirai mieux la doc Oracle (tout était dedans, je viens de vérifier) et avant de poster je cherchai mieux sur developpez

    Sorry pour cette faute et merci du coup de main.

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

Discussions similaires

  1. comment faire un DROP sur une NESTED TABLE
    Par gilux dans le forum Oracle
    Réponses: 1
    Dernier message: 14/03/2006, 18h07
  2. [JDBC][ORACLE] Lire une "nested table"
    Par chadec4 dans le forum JDBC
    Réponses: 1
    Dernier message: 13/02/2006, 09h55
  3. Nested table et contrainte UNIQUE
    Par evlad dans le forum Oracle
    Réponses: 7
    Dernier message: 05/01/2006, 10h13
  4. pb trigger avec nested table
    Par evlad dans le forum Oracle
    Réponses: 1
    Dernier message: 29/12/2005, 12h04
  5. Réponses: 2
    Dernier message: 19/10/2005, 14h23

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