[pgplsql] Probleme d'execute update dans une fonction
Aloha,
Je construis une fonction pour basculer mes géométries d'une colonne à une autre sur l'ensemble des tables d'une base de données.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| CREATE OR REPLACE FUNCTION h_ile.test_update_geom() RETURNS integer AS $$
DECLARE
tgeom RECORD;
BEGIN
RAISE NOTICE 'Ajout d''une colonne geom plus OGC....';
FOR tgeom IN
SELECT * FROM geometry_columns inner join information_schema.tables
on table_schema = f_table_schema and table_name = f_table_name and table_type = 'BASE TABLE'
where... LOOP
...
EXECUTE 'UPDATE '||quote_ident(tgeom.f_table_schema)||'.'||quote_ident(tgeom.f_table_name)
||' SET the_geom_test='||quote_ident(tgeom.f_table_name)||'.'||quote_ident(tgeom.f_geometry_column);
...
END LOOP;
RAISE NOTICE 'Mise à jour terminée';
RETURN 1;
END;
$$ LANGUAGE plpgsql; |
En résultat, mes colonnes sont bien créées par le début du code (absent de ce message), les index, idem, mais aucune géométrie n'est updatée dans la nouvelle colonne "the_geom_test".
Si j'essaie le code update en dehors de la fonction, il fonctionne.
Comment faire ? Quel peut-être la source du problème rencontré ?
D'avance, merci.