Bonjour,

J'ai créé une fonction dont le code est le suivant :

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
CREATE FUNCTION transfert_donnee(text, text, text, text, text, text) RETURNS int4 AS 'DECLARE
        t_source ALIAS FOR $1;
        t_dest ALIAS FOR $2;
        ch_source ALIAS FOR $3;
        ch_dest ALIAS FOR $4;
        cle_source ALIAS FOR $5;
        cle_dest ALIAS FOR $6;
        enreg RECORD;
        sql VARCHAR(4000); 
BEGIN
      FOR enreg IN EXECUTE ''SELECT * FROM '' || t_source LOOP
            sql  :=  ''UPDATE '' || t_dest || '' SET '' || ch_dest || '' =  enreg.'' || ch_source || '' WHERE '' || cle_dest || '' = enreg.'' || cle_source;
             EXECUTE IMMEDIATE sql;
    END LOOP;
    RETURN 1;
END;'  LANGUAGE 'plpgsql';
La création de la fonction se réalise correctement.
Or au lancement de la fonction tel que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select transfert_donnee('divers_contacts','info_fiche','prenom','if_zone10','cd','if_indexe');
Un message d'erreur s'affiche : "ERROR: parser: parse error at or near "$1""

Après x recherches, je n'ai pas résolu mon problème.

Pouvez-vous, svp, chercher ce qu'il ne va pas dans ce code ?

Merci par avance.

Elois.