J'ai un script qui utilise plusieurs fois VARRAY. Mais, je n'arrive pas à comprendre comment réinitialiser le VARRAY après l'avoir bouclé une fois. J'ai écrit le script de base suivant pour m'aider à dépanner:Comment remplir plusieurs fois la variable varray
DECLARE
TYPE multi_show_id_type IS VARRAY (60) OF VARCHAR2 (10);
multi_show_id multi_show_id_type := multi_show_id_type();
counter NUMBER := 1;
i NUMBER := 1;
BEGIN
DBMS_OUTPUT.put_line ('BEGIN');
WHILE i < 10
LOOP
DBMS_OUTPUT.put_line (i);
--counter:=0;
--multi_show_id :=multi_show_id_type();
--multi_show_id.delete;
WHILE counter < 25
LOOP
multi_show_id.EXTEND();
multi_show_id (counter) := counter * counter;
DBMS_OUTPUT.put_line ('VArray: [' || counter || '] [' || multi_show_id (counter) || ']');
counter := counter + 1;
END LOOP;
i := i + 1;
END LOOP;
DBMS_OUTPUT.put_line ('END');
END;
/
Ce script fonctionne lorsqu'il ne fait qu'une boucle sur le tableau. Mais si vous décommentez la ligne counter:=0
, ce qui l'oblige à boucler 10 fois la boucle de population du tableau, j'obtiens une erreur ORA-06532
. Vous pouvez voir certaines des choses que j'ai essayées dans les autres lignes commentées. Toute aide serait appréciée.
Comment Est-ce que cela résout mon problème? Je veux que le varray redémarre à 1 chaque boucle. Pour mon programme actuel, pas plus de 4 valeurs seront stockées dans le tableau, et généralement un seul. –