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.