Laço de repetição no PL/SQL

[ad#texto]

Algumas pessoas tem dúvidas sobre como fazer um laço de repetição no PL/SQL, realmente a forma de construção e controle deste tipo de laço geralmente é diferente se compararmos o PL/SQL com outras linguagens como, por exemplo, Java, PHP ou C#, porém é igualmente funcional.

Vou apresentar um exemplo que irá substituir diversas implementações dos comandos FOR ou WHILE de diversas linguagens, porém existe diversas formas de montar e trabalhar com laço de repetição no PL/SQL, algumas mais simples e outras mais complexas, fica a seu critério fazer uma pesquisa e determinar qual forma fica melhor para sua implementação.

DECLARE

 dataSistema  DATE;
 dataParam    DATE := SYSDATE + 10;
 contador     NUMBER := 0;

BEGIN
 dbms_output.put_line('Início do processo.');
 dbms_output.put_line(' ');

 LOOP
  dataSistema := SYSDATE + contador;
  contador := contador + 1;
  dbms_output.put_line('Data: ' || dataSistema);

  EXIT WHEN dataSistema = dataParam;
 END LOOP;

 dbms_output.put_line(' ');
 dbms_output.put_line('Fim do processo.');
END;

Observe o exemplo acima, ele irá iterar o laço de repetição até que a variável dataSistema que está sendo incrementada a cada repetição seja igual a variável dataParam, bem simples e prático, só é preciso atribuir a cláusula de saída (fim) do laço, senão ele ficará em loop infinito bloqueando a sua aplicação.

Não tem muito o que explicar, o código PL/SQL de tão simples é autoexplicativo.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.