Enquanto entra em loop Oracle PL/SQL com exemplo
⚡ Resumo Inteligente
Oracle O loop WHILE em PL/SQL repete um bloco de código enquanto uma condição permanecer verdadeira. É um loop de verificação de entrada, que testa a condição de saída antes de cada iteração; portanto, o bloco pode ser executado zero vezes e não requer a palavra-chave EXIT explícita.

O que é um loop While em PL/SQL?
O Enquanto Loop Em PL/SQL, funciona de forma semelhante à instrução de loop básica, exceto que a condição de saída está no início do loop. Funciona como um loop de verificação de entrada, onde o bloco de execução só é executado se a condição for satisfeita, pois a condição de saída é verificada antes da execução.
Não é necessário usar explicitamente a palavra-chave 'EXIT' para sair do loop, pois a condição é validada implicitamente a cada iteração.
Sintaxe do Loop While PL/SQL
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- A palavra-chave 'WHILE' marca o início do loop e 'END LOOP' marca o fim.
- A condição de saída é avaliada a cada iteração, antes do início da execução do programa.
- O bloco de execução contém todo o código que precisa ser executado.
- A parte de execução pode conter qualquer instrução executável.
Exemplo de Oracle Loop While PL/SQL
Neste exemplo, imprimimos os números de 1 a 5 usando uma instrução de repetição WHILE.

DECLARE a NUMBER := 1; BEGIN dbms_output.put_line('Program started'); WHILE (a <= 5) LOOP dbms_output.put_line(a); a:= a+1; END LOOP; dbms_output.put_line('Program completed'); END; /
Code Explicação:
- Code linha 2: Declarando a variável 'a' como 'NUMBER' e inicializando-a com o valor '1'.
- Code linha 4: Exibição da mensagem "Programa iniciado".
- Code linha 5: A palavra-chave 'WHILE' marca o início do loop e verifica se o valor de 'a' é menor ou igual a 5.
- Code linha 7: Imprime o valor de 'a'.
- Code linha 8: Incrementa o valor de 'a' em 1.
- Code linha 9: A palavra-chave 'END LOOP' marca o fim do bloco de execução.
- As linhas 7 e 8 continuam a ser executadas até que 'a' atinja o valor 6, momento em que a condição retorna FALSO e o controle sai do loop. laço.
- Code linha 10: Imprimir a mensagem "Programa concluído".
Loop WHILE vs Loop FOR vs Loop Básico
PL/SQL oferece três tipos de loops, e escolher o correto mantém o código claro. O loop WHILE é adequado para repetições condicionais, enquanto os outros dois são adequados para contagens fixas ou saídas explicitamente controladas.
| laço | Critério de saída | Melhor usado quando |
|---|---|---|
| ENQUANTO loop | A condição no topo torna-se falsa. | O número de iterações é desconhecido. |
| laço FOR | O contador atinge o limite do intervalo. | O número de iterações é conhecido. |
| Loop básico | Saída explícita no bloco | A saída é controlada manualmente. |
Como o laço WHILE testa sua condição no início, o corpo pode ser executado zero vezes se a condição for falsa desde o princípio. Essa é a principal diferença em relação a um laço básico, cujo corpo sempre é executado pelo menos uma vez.
Evitando um loop infinito While
Um loop WHILE depende inteiramente da variável de controle se aproximar da condição de saída. Se isso nunca acontecer, o loop será executado indefinidamente e a sessão ficará travada. Três hábitos evitam isso:
- Altere o contador a cada iteração. O exemplo incrementa 'a' dentro do loop; remover essa linha faria com que o loop fosse infinito.
- Teste os limites. Confirme se a condição pode de fato se tornar falsa para o valor inicial, e não apenas em um caso ideal.
- Adicione uma SAÍDA de segurança QUANDO. Em um loop orientado a dados, um comando EXIT WHEN, que atinge o número máximo de iterações, serve como proteção contra valores inesperados.
Quando o número de repetições é realmente fixo, um loop FOR elimina completamente o risco, porque seu contador é gerenciado automaticamente.
