Com tots els llenguatges de programació principals, PL/SQL admet bucles que permeten repetir un conjunt d'instruccions fins que es compleixi una determinada condició.
En aquest tutorial, explorarem l'ús de la instrucció LOOP a PL/SQL per executar repetidament un bloc de codi.
Oracle Loops
El llenguatge PL/SQL admet les diferents construccions de bucles com ara bucles 'for' i bucles 'while'. Podem expressar la sintaxi d'un bucle genèric a Oracle tal com es mostra a continuació:
<< etiqueta >> LOOP
declaració_bucle;
END LOOP loop_label;
Conté la paraula clau LOOP i el cos del bucle a executar i s'inclou amb la paraula clau END LOOP.
El bloc LOOP executa les accions definides i retorna el control a la clàusula de bucle superior un cop finalitzada. Normalment s'inclou en una clàusula EXIT o EXIT WHEN per acabar el bucle després que es compleixi una condició específica. Això ajuda a prevenir els bucles infinits.
Sintaxi Oracle For Loop:
A continuació es mostra la sintaxi d'un bucle 'for' a PL/SQL:
COMENÇARFOR loop_variable IN [límit_inferior..límit_superior] LOOP
-- codi que s'executarà al bucle
BULE FINAL;
FINAL;
Loop_variable us permet definir un bucle que s'utilitza per controlar el bucle i els límits inferior i superior. Els límits superior i inferior especifiquen els valors d'interval on es produeix l'avaluació del bucle.
Oracle While Loops
També podem definir els bucles 'while' a PL/SQL tal com es demostra amb la sintaxi següent:
COMENÇARWHILE condició LOOP
-- acció de bucle
BULE FINAL;
FINAL;
En un bucle 'while', l'acció del bucle s'executa repetidament mentre la condició és certa.
Cursor Oracle per a bucles
Oracle també admet els bucles 'cursor for' que ens permeten executar un conjunt d'instruccions per a cada fila d'un conjunt de resultats determinat. La sintaxi es pot expressar de la següent manera:
COMENÇARFOR loop_variable IN (SELECT columna1, columna2,...
DE la taula 1, taula 2,...
ON condició) LOOP
-- acció de bucle
BULE FINAL;
FINAL;
Exemple de bucles a Oracle
Els exemples següents cobreixen els conceptes bàsics de treballar amb bucles de cursor for, while i for a Oracle.
Exemple de bucle per a Oracle:
Aquest exemple mostra com utilitzar un bucle 'for' per imprimir els números de l'1 al 10.
COMENÇARFOR i EN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
BULE FINAL;
FINAL;
Exemple de bucle while:
Podem realitzar una acció similar utilitzant un bucle while tal com es mostra a continuació:
COMENÇARDECLARAR
i NÚMERO:= 1;
COMENÇAR
MENTRE i <= 10 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
BULE FINAL;
FINAL;
FINAL;
Això hauria de realitzar una acció similar al bucle 'for'.
Cursor per exemple de bucle:
A continuació es mostra com utilitzar el bucle 'cursor for' per obtenir el nom complet d'un client:
COMENÇARPER a l'empleat IN (SELECT first_name, last_name
DELS empleats) LOOP
DBMS_OUTPUT.PUT_LINE(nom.empleat. || ' ' || nom.empleat.);
BULE FINAL;
FINAL;
Exemple de sortida:
Conclusió
En aquesta publicació, us heu trobat amb tres tipus principals de bucles en llenguatge Oracle PL/SQL. Podeu consultar la documentació per explorar-ne més.