Bonjour,

Tout d'abord, je suis sur Oracle 9i.

J'utilise les collections sur plusieurs niveaux, c'est-à-dire que je déclare les types suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
TYPE TAB1 IS TABLE OF NUMBER(10) INDEX BY BINARY_INTEGER;
TYPE TAB2 IS TABLE OF TAB1 INDEX BY BINARY_INTEGER;
TYPE TAB3 IS TABLE OF TAB2 INDEX BY BINARY_INTEGER;
TYPE TAB4 IS TABLE OF TAB3 INDEX BY BINARY_INTEGER;
Ainsi, j'ai des tableaux à 4 dimensions.
Je sais qu'on peut utiliser la méthode PRIOR pour accéder à l'indice précédent celui qui est passé en argument, de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
W_Tab4 TAB4;
x := W_Tab4(i)(j)(k).PRIOR(W_Tab4(i)(j)(k)(l));
http://sheikyerbouti.developpez.com/...?page=Chap5#L5

J'arrive à le faire fonctionner pour le niveau des tableaux le plus fin, c'est-à-dire le quatrième. Mais je n'arrive pas à utiliser PRIOR pour des niveaux intermédiaires, du style avoir le PRIOR de l'indice k sur W_Tab4 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
x := W_Tab4(i)(j).PRIOR(W_Tab4(i)(j)(k)(l)).(l);
Ou :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
x := W_Tab4(i)(j).PRIOR(W_Tab4(i)(j)(k)).(l);
Mais ça ne marche pas...
Merci pour votre aide.