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.