Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle PL/SQL - Comment créer une variable tableau simple ?

Vous pouvez utiliser VARRAY pour un tableau de taille fixe :

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t('Matt', 'Joanne', 'Robert');
begin
   for i in 1..array.count loop
       dbms_output.put_line(array(i));
   end loop;
end;

Ou TABLE pour un tableau illimité :

...
   type array_t is table of varchar2(10);
...

Le mot "table" ici n'a rien à voir avec les tables de base de données, ce qui prête à confusion. Les deux méthodes créent des tableaux en mémoire.

Avec l'un ou l'autre de ces éléments, vous devez à la fois initialiser et étendre la collection avant d'ajouter des éléments :

declare
   type array_t is varray(3) of varchar2(10);
   array array_t := array_t(); -- Initialise it
begin
   for i in 1..3 loop
      array.extend(); -- Extend it
      array(i) := 'x';
   end loop;
end;

Le premier index est 1 et non 0.