Bonjour,
J'ai créé une fonction dont le code est le suivant :
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 :
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.
Partager