Bonjour,

La fonction met bien à jour des variables en fonction du nom de la colonne
mais il faut prévoir autant de lignes "replace" qu'il y a de colonnes.
N'y aurait-il pas un moyen de mettre à jour les variables en fonction d'un id de colonne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;