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.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.