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ÉTERdo $$ 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 POURdo $$ 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 tabledo $$ 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 tabledo $$ 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.