Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle PL/SQL - Como criar uma variável de array simples?


Você pode usar VARRAY para uma matriz de tamanho fixo:
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 para uma matriz ilimitada:
...
   type array_t is table of varchar2(10);
...

A palavra "tabela" aqui não tem nada a ver com tabelas de banco de dados, confusamente. Ambos os métodos criam arrays na memória.

Com qualquer um desses, você precisa inicializar e estender a coleção antes de adicionar 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;

O primeiro índice é 1 e não 0.