Les structures itératives et répétitives#
Les boucles permettent d'exécuter des instructions plusieurs fois. Cette répétition peut se faire en fonction d'une condition ou d'un nombre défini d'itérations.
Structure itérative DO..WHILE
(RÉPÉTER)#
La boucle RÉPÉTER (ou DO..WHILE) s'exécute au moins une fois, puis continue tant que la condition spécifiée n'est pas vérifiée.
Structure itérative RÉPÉTER
do
$$
declare
n integer = 9;
k integer;
begin
raise notice 'Table de multiplication de %', n;
k = 1;
loop
raise notice '% * % = %', k, n, k*n;
k = k + 1;
exit when k > 5;
end loop;
end;
$$ language plpgsql;
Structure répétitive FOR
(POUR)#
La boucle POUR s'exécute un nombre d'iétarions donné.
Structure itérative POUR
do
$$
declare
_query = text;
begin
for k in 1..10 loop
raise notice '%', k;
_query = 'perform random_function(now()::date - ' || k || ');';
execute _query;
end loop;
end;
$$;
Itérer sur des valeurs#
PL/PLSQL permet également d'itérer sur les enregistrements d'une requête
Itérer sur une table
do
$$
declare
item record;
begin
for item in select a from (values (1), (2), (3)) s(a) loop
raise info '%', item.a;
end loop;
end;
$$;
Itérer sur une table#
Il est possible d'itérer sur les lignes d'une table ou d'une requête.
Itérer sur une table
do
$$
declare
_row record;
begin
for _row in (select region, segment, pct::int from bitmp.jk_tmp_sub_active_dactive30d_effectif) loop
raise notice 'yes % - % - %', _row.region, _row.segment, _row.pct;
end loop;
end;
$$;
Dans la prochaine section, nous aborderons les fonctions.