quarta-feira, 23 de março de 2011

Array no PL/SQL (Oracle)

Trabalhar com estruturas indexadas pode nos poupar muito trabalho, deixar o código mais limpo e reutilizável, pois bem vamos dar um exemplo de como fazer isso no PL/SQL. Criaremos um tipo table que seja capaz de armazenar nomes de uma tabela de funcionários de forma indexada, e em seguida mostraremos o que foi armazenado, segue o código:

declare
  -- tipo tabela contendo apenas texto e indexado
  type   TipoNomFunc is table of varchar2(200) index by binary_integer;
  -- variável do nosso tipo (como nosso tipo é indexado ele funcionará como um array)
  func   TipoNomFunc;
  -- indice para loop
  indice number := 1;
  --
begin
  --
  -- cursor para nossa tabela de funcionarios
  for emps in (
      select *
      from   funcionarios  )
  loop
    -- colocamos o nome do funcionario em nosso "vetor"
    func(indice) := emps.nom_uncionario;
    -- incrementamos o indice
    indice := indice + 1;
    --
  end loop;
  --
  -- agora percorremos todo nosso "vetor" e mostramos seu conteúdo
  indice := func.first;
  loop
    -- se não houver um próximo sai do loop
    exit when indice is null;
    dbms_output.put_line(indice || ':' || func(indice));
    indice := func.next(indice);
    --
  end loop;
  --
end;

Nenhum comentário :

Postar um comentário

Related Posts Plugin for WordPress, Blogger...