Aller au contenu

Les structures itératives et répétitives

Les boucles permettent d'exécuter des instructions plusieurs fois. On

Structure itérative WHILE (TANT QUE)

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)

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 une table

PL/PLSQL permet également d'itérer sur les enregistrements d'une requête

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;
$$;


.