Bonjour
Merci de penser à préciser systématiquement votre version d'Oracle et les messages d'erreur reçus.
Les tableaux de type VARRAY ont initialement une taille nulle : ils ont 0 cellule.
L'initialisation du tableau, effectuée par l'appel du constructeur, a pour effet en une seule commande d'allouer un certain nombre de cellules, par exemple 3, et de leur donner une valeur.
tab_cash tab1:=tab1(8, 47, 21);
Mais vous ne pouvez pas attribuer une valeur à une cellule qui n'a pas encore été allouée. Pour ça, il faut d'abord utiliser la méthode EXTEND, qui permet d'allouer une (ou plusieurs) cellule vide, puis ensuite faire l'affectation.
1 2
| tab_cash.extend;
tab_cash(4):=51; |
Voir EXTEND dans le document suivant : http://sheikyerbouti.developpez.com/pl_sql/?page=Chap5
Partager