Como todas as principais linguagens de programação, PL/SQL oferece suporte a loops que permitem que um conjunto de instruções seja repetido até que uma determinada condição seja atendida.
Neste tutorial, exploraremos o uso da instrução LOOP em PL/SQL para executar repetidamente um bloco de código.
Oráculo Loops
A linguagem PL/SQL oferece suporte a várias construções de loop, como loop “for” e loops “while”. Podemos expressar a sintaxe de um loop genérico no Oracle conforme mostrado a seguir:
<< rótulo >> CICLO
loop_statement;
END LOOP loop_label;
Isso contém a palavra-chave LOOP e o corpo do loop a ser executado e é colocado entre a palavra-chave END LOOP.
O bloco LOOP executa as ações definidas e retorna o controle para a cláusula de loop superior após a conclusão. Isso geralmente é incluído em uma cláusula EXIT ou EXIT WHEN para encerrar o loop após uma condição específica ser atendida. Isso ajuda a evitar os loops infinitos.
Oracle For Loop Sintaxe:
O seguinte mostra a sintaxe de um loop “for” em PL/SQL:
COMEÇARFOR loop_variable IN [lower_bound..upper_bound] LOOP
-- código a ser executado no loop
END LOOP;
FIM;
A variável_loop permite definir um loop que é usado para controlar o loop e os limites inferior e superior. Os limites superior e inferior especificam os valores do intervalo em que ocorre a avaliação do loop.
Oracle While Loops
Também podemos definir os loops “while” em PL/SQL conforme demonstrado pela seguinte sintaxe:
COMEÇARCONDIÇÃO WHILE LOOP
-- ação de loop
END LOOP;
FIM;
Em um loop “while”, a ação do loop é executada repetidamente enquanto a condição for verdadeira.
Oracle Cursor For Loops
O Oracle também oferece suporte aos loops “cursor for” que nos permitem executar um conjunto de instruções para cada linha em um determinado conjunto de resultados. A sintaxe pode ser expressa da seguinte forma:
COMEÇARFOR loop_variable IN (SELECT column1, column2, ...
DE tabela1, tabela2, ...
ONDE condição) LOOP
-- ação de loop
END LOOP;
FIM;
Exemplos de loops no Oracle
Os exemplos a seguir abrangem os fundamentos do trabalho com for, while e loops de cursor no Oracle.
Exemplo de Loop Oracle For:
Este exemplo demonstra como usar um loop “for” para imprimir os números de 1 a 10.
COMEÇARFOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
END LOOP;
FIM;
Exemplo de loop while:
Podemos executar uma ação semelhante usando um loop while, conforme mostrado a seguir:
COMEÇARDECLARAR
i NÚMERO:= 1;
COMEÇAR
ENQUANTO i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
FIM;
FIM;
Isso deve executar uma ação semelhante ao loop “for”.
Cursor For Loop Exemplo:
Veja a seguir como usar o loop “cursor for” para obter o nome completo de um cliente:
COMEÇARPARA funcionário IN (SELECT first_name, last_name
DE funcionários) LOOP
DBMS_OUTPUT.PUT_LINE(funcionário.primeiro_nome || ' ' || funcionário.último_nome);
FINALIZAR CIRCUITO;
FIM;
Saída de Exemplo:
Conclusão
Nesta postagem, você encontrou três tipos principais de loops na linguagem Oracle PL/SQL. Você pode verificar a documentação para explorar mais.