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. |