Uso de Arrays no Oracle Terça-feira, 15 de Março de 2005 Veremos neste artigo como utilizar Arrays no Oracle. Podemos criar um array simples ou mais complexos, utilizando do recurso de RECORD do Oracle. No exemplo abaixo criamos um array simples, com apenas um campo. Exemplo 1: set serveroutput on; DECLARE TYPE TabNMatr IS TABLE OF VARCHAR2(10) INDEX BY BINARY_INTEGER; vNrMatr TabNMatr ; begin vNrMatr(1) := 'Texto1'; vNrMatr(2) := 'Texto2'; dbms_output.put_line(vNrMatr(1)); dbms_output.put_line(vNrMatr(2)); end; Podemos sofisticar e criar um RECORD para o array ter vários campos. Depois que definimos todos os campos do RECORD, associamos ele com o tipo TABLE e este relaciona com a variável que será nosso array, criando uma verdadeira tabela em memória. Para varrer o array, podemos fazer uso da variável .COUNT, que guarda a quantidade de registros dentro do array. DECLARE TYPE RegCargo IS RECORD ( CdCargo NUMBER( 2 ) NOT NULL := 0 , NmCargo VARCHAR2( 30 ), Observacao VARCHAR2( 60 )); TYPE vArrayCargo IS TABLE OF RegCargo INDEX BY BINARY_INTEGER; TabCargo vArrayCargo; begin TabCargo(1).CdCargo := '1'; TabCargo(1).NmCargo := 'Cargo1'; TabCargo(1).Observacao := 'Obs1'; TabCargo(2).CdCargo := '2'; TabCargo(2).NmCargo := 'Cargo2'; TabCargo(2).Observacao := 'Obs2'; for i in 1..TabCargo.count loop dbms_output.put_line(TabCargo(i).CdCargo); dbms_output.put_line(TabCargo(i).NmCargo); dbms_output.put_line(TabCargo(i).Observacao); end loop; end; Até o próximo!