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.
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".
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 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;
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.
Partager