voila je suis entrain de me battre avec les fonctions en plpgsql

je dois parcourir tout les résultats d'une requête pour pouvoir les déplacer dans une autre table

j'ai le code 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
17
18
19
20
21
22
 
iDROP FUNCTION clean_mesure();
CREATE OR REPLACE FUNCTION clean_mesure() RETURNS void AS '
        DECLARE
                tmp RECORD;
                res RECORD;
        BEGIN
                FOR valeurs IN SELECT * FROM mesure WHERE EXTRACT(day FROM current_timestamp-date)<=1 LOOP
                        SELECT INTO res count(carte) FROM archive WHERE carte=valeurs.carte AND date=date(valeurs.date);
                        IF res.count = 0 THEN
                                INSERT INTO acrhive VALUES (date(tmp.date),valeurs.carte,tmp.valeurs);
                        ELSE
                                UPDATE archive SET valeurs[1]=valeurs[1]+tmp.valeurs[1],valeurs[2]=valeurs[2]+tmp.valeurs[2],
                                                   valeurs[3]=valeurs[3]+tmp.mesures[3],valeurs[4]=valeurs[4]+tmp.mesures[4],
                                                   valeurs[5]=valeurs[5]+tmp.mesures[5],valeurs[6]=valeurs[6]+tmp.mesures[6]
                                                   WHERE carte=valeurs.carte AND date=date(valeurs.date);
                        END IF;
 
                END LOOP;
                RETURN NULL;
        END;'
        LANGUAGE 'plpgsql';
j'ai systématiquement le message d'erreur :

ERROR: missing ".." at end of SQL expression


je pense que cela vient de la boucle mais je vois pas trop pourquoi car la plus part des exemples la méthode et celle que j'ai utilisé