PL / SQL - Loops

Neste capítulo, discutiremos Loops em PL / SQL. Pode haver uma situação em que você precise executar um bloco de código várias vezes. Em geral, as instruções são executadas sequencialmente: a primeira instrução em uma função é executada primeiro, seguida pela segunda e assim por diante.

As linguagens de programação fornecem várias estruturas de controle que permitem caminhos de execução mais complicados.

Uma instrução de loop nos permite executar uma instrução ou grupo de instruções várias vezes e a seguir está a forma geral de uma instrução de loop na maioria das linguagens de programação -

A PL / SQL fornece os seguintes tipos de loop para lidar com os requisitos de loop. Clique nos links a seguir para verificar seus detalhes.

S.No Tipo e descrição de loop
1 PL / SQL Basic LOOP

Nessa estrutura de loop, a sequência de instruções é colocada entre as instruções LOOP e END LOOP. A cada iteração, a sequência de instruções é executada e o controle é retomado no topo do loop.

2 PL / SQL WHILE LOOP

Repete uma declaração ou grupo de declarações enquanto uma determinada condição for verdadeira. Ele testa a condição antes de executar o corpo do loop.

3 PL / SQL PARA LOOP

Execute uma sequência de instruções várias vezes e abrevia o código que gerencia a variável de loop.

4 Loops aninhados em PL / SQL

Você pode usar um ou mais loop dentro de qualquer outro loop básico, while ou for.

Rotulando um PL / SQL Loop

Os loops PL / SQL podem ser rotulados. O rótulo deve ser colocado entre colchetes angulares duplos (<< e >>) e aparecer no início da instrução LOOP. O nome do rótulo também pode aparecer no final da instrução LOOP. Você pode usar o rótulo na instrução EXIT para sair do loop.

O programa a seguir ilustra o conceito -

DECLARE 
   i number(1); 
   j number(1); 
BEGIN 
   << outer_loop >> 
   FOR i IN 1..3 LOOP 
      << inner_loop >> 
      FOR j IN 1..3 LOOP 
         dbms_output.put_line('i is: '|| i || ' and j is: ' || j); 
      END loop inner_loop; 
   END loop outer_loop; 
END; 
/

Quando o código acima é executado no prompt SQL, ele produz o seguinte resultado -

i is: 1 and j is: 1 
i is: 1 and j is: 2 
i is: 1 and j is: 3 
i is: 2 and j is: 1 
i is: 2 and j is: 2 
i is: 2 and j is: 3 
i is: 3 and j is: 1 
i is: 3 and j is: 2 
i is: 3 and j is: 3  

PL/SQL procedure successfully completed.

As declarações de controle de loop

As instruções de controle de loop alteram a execução de sua sequência normal. Quando a execução deixa um escopo, todos os objetos automáticos criados nesse escopo são destruídos.

PL / SQL oferece suporte às seguintes instruções de controle. Os loops de rotulagem também ajudam a tirar o controle de um loop. Clique nos links a seguir para verificar seus detalhes.

S.No Declaração de controle e descrição
1 Declaração EXIT

A instrução Exit completa o loop e o controle passa para a instrução imediatamente após END LOOP.

2 CONTINUE declaração

Faz com que o loop pule o restante de seu corpo e teste novamente sua condição antes de reiterar.

3 Declaração GOTO

Transfere o controle para a instrução rotulada. Embora não seja aconselhável usar a instrução GOTO em seu programa.