sql >> Base de Datos >  >> RDS >> Oracle

Oracle PL/SQL:¿cómo crear una variable de matriz simple?

Puede usar VARRAY para una matriz de tamaño fijo:

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;

O TABLE para una matriz ilimitada:

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

La palabra "tabla" aquí no tiene nada que ver con las tablas de la base de datos, de manera confusa. Ambos métodos crean matrices en memoria.

Con cualquiera de estos, debe inicializar y ampliar la colección antes de agregar elementos:

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;

El primer índice es 1, no 0.