Cicli PL/SQL

Cicli Pl Sql



I loop sono uno degli elementi costitutivi principali della programmazione. Utilizziamo i loop per creare i blocchi di codice gestibili che possono essere eseguiti più volte quando una determinata condizione è vera. Sono l'osso fondamentale quando si automatizzano le attività ripetitive senza riscrivere più volte un blocco di codice.

Come tutti i principali linguaggi di programmazione, PL/SQL supporta cicli che consentono di ripetere un insieme di istruzioni finché non viene soddisfatta una determinata condizione.

In questo tutorial, esploreremo l'uso dell'istruzione LOOP in PL/SQL per eseguire ripetutamente un blocco di codice.







Loop Oracle

Il linguaggio PL/SQL supporta i vari costrutti di loop come i loop 'for' e 'while'. Possiamo esprimere la sintassi di un ciclo generico in Oracle come mostrato di seguito:



<< etichetta >> CICLO CONTINUO
loop_statement;
END LOOP loop_label;

Questo contiene la parola chiave LOOP e il corpo del ciclo da eseguire ed è racchiuso dalla parola chiave END LOOP.



Il blocco LOOP esegue le azioni definite e restituisce il controllo alla clausola del ciclo superiore dopo il completamento. Questo di solito è racchiuso in una clausola EXIT o EXIT WHEN per terminare il ciclo dopo che è stata soddisfatta una condizione specifica. Questo aiuta a prevenire i loop infiniti.





Sintassi Oracle For Loop:

Quanto segue mostra la sintassi di un ciclo 'for' in PL/SQL:

INIZIO
FOR variabile_ciclo IN [limite_inferiore..limite_superiore] LOOP
-- codice da eseguire nel ciclo
CICLO FINE;
FINE;

La variabile_loop consente di definire un ciclo che viene utilizzato per controllare il ciclo e i limiti inferiore e superiore. I limiti superiore e inferiore specificano i valori dell'intervallo in cui si verifica la valutazione del ciclo.



Ciclo mentre Oracle

Possiamo anche definire i cicli 'while' in PL/SQL come dimostrato dalla seguente sintassi:

INIZIO
WHILE condizione LOOP
-- azione ciclica
CICLO FINE;
FINE;

In un ciclo 'while', l'azione del ciclo viene eseguita ripetutamente mentre la condizione è vera.

Cursore Oracle per loop

Oracle supporta anche i cicli 'cursor for' che ci consentono di eseguire una serie di istruzioni per ogni riga in un determinato set di risultati. La sintassi può essere espressa come segue:

INIZIO
FOR variabile_ciclo IN (SELECT colonna1, colonna2, ...
DA tabella1, tabella2, ...
Condizione WHERE) LOOP
-- azione ciclica
CICLO FINE;
FINE;

Esempi di cicli in Oracle

Gli esempi seguenti illustrano le nozioni di base sull'utilizzo di cicli di cursori for, while e for in Oracle.

Esempio di ciclo For Oracle:

Questo esempio mostra come utilizzare un ciclo 'for' per stampare i numeri da 1 a 10.

INIZIO
PER i IN 1..10 CICLO
DBMS_OUTPUT.PUT_LINE(i);
CICLO FINE;
FINE;

Mentre Esempio di ciclo:

Possiamo eseguire un'azione simile utilizzando un ciclo while come mostrato di seguito:

INIZIO
DICHIARARE
i NUMERO := 1;
INIZIO
WHILE i <= 10 CICLO
DBMS_OUTPUT.PUT_LINE(i);
io := io + 1;
CICLO FINE;
FINE;
FINE;

Questo dovrebbe eseguire un'azione simile al ciclo 'for'.

Esempio di cursore per loop:

Quanto segue mostra come utilizzare il ciclo 'cursor for' per ottenere il nome completo di un cliente:

INIZIO
FOR dipendente IN (SELECT nome, cognome
DA dipendenti) LOOP
DBMS_OUTPUT.PUT_LINE(dipendente.nome_nome || ' ' || dipendente.cognome);
CICLO FINE;
FINE;

Esempio di output:

Conclusione

In questo post, hai riscontrato tre tipi principali di loop nel linguaggio Oracle PL/SQL. Puoi controllare la documentazione per esplorare ulteriormente.