1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| FUNCTION func_maj RETURN VARCHAR2
IS
ln$mon_texte maTable.monChamp%type;
cursor c1
is
select * from maTable2 where monChamp = xxx;
BEGIN
select monChamp2 into ln$mon_texte
from maTable1
where monChamp1 = 1;
-- ln$mon_texte est égal à par exemple
-- blablabla [nomChamp1] blablabla [nomChamp2] blablabla
FOR enrc1 IN c1
LOOP
-- comme cela ça fonctionne
-- mais je suis obligé de faire une ligne par nom de champ
ln$mon_texte := replace(ln$mon_texte,'[nomChamp1]', enrc1.nomChamp1);
-- n'y a-t-il pas une possibilité de faire une boucle sur le nom des champs en fonction d'un id
-- par exemple
-- ln$mon_texte := replace(ln$mon_texte,'[' || enrc1.column(i).name || ']', enrc1.column(i).value);
end loop;
return ln$mon_texte;
END func_maj; |
Partager