As principais estruturas de loop do PL/SQL são:
1 - LOOP
LOOP
<loop_body> /* Uma lista de instruções. */
EXIT WHEN <condition>;
END LOOP;
2 - WHILE-LOOP
WHILE <condition> LOOP
<loop_body>
END LOOP;
3 - FOR-LOOP
FOR <var> IN <start>..<finish> LOOP
<loop_body>
END LOOP;
Podemos perceber que a única que descreve as iterações na própria declaração é o FOR-LOOP, enquanto o WHILE-LOOP define a condição de término(independente do número de iterações) na sua definição e o LOOP(não sei se poderia falar LOOP-WHEN) não define nem a condição de parada, muito menos as iterações, necessitando de instrução EXIT-WHEN para seu término.
[1] http://www.fundao.wiki.br/articles.asp?cod=31
As estruturas de Repetição disponíveis no PL/SQL são: LOOP (básico), WHile-LOOP e FOR LOOP. Estas estruturas são executadas repetidas vezes até que um critério seja alcançado, caso nenhum critério for informado ou este critério for inválido o bloco entrará em uma execução infinita, podendo acarretar em problemas como o travamento do equipamento que estiver executando o código.
O Loop é a estrutura de repetição mais simples entre as três estruturas disponíveis no PL/SQL. Com o uso desta estrutura primeiro um trecho de código é executado e só então a condição de saída é testada. Assim o código será executado ao menos uma vez, mesmo que a condição de saída seja atingida já na primeira execução.
Estrutura WHILE. Esta estrutura de repetição realiza um teste antes de iniciar a execução de um trecho de código, ou seja, o código será executado até que a condição testada seja falsa.
Estrutura FOR. Quando existir a necessidade de executar um trecho de código por determinadas vezes usa-se a estrutura FOR, ou seja, quando o número de iterações é conhecido.