holita a todos. tengo un procedimiento almacenado que debe:
1) hacer un select
2) crear unos campos geometricos
3) actualizar los valores de estos campos geometricos
4) crear un indice geoespacial
CUANDO EJECUTO EL SP ME GENERA ERROR EN EL PUNTO 3 AL HACER UN UPDATE Y EJECUTARLO CON EXECUTE sql;
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION p_poblaingas_geoindex(CHARACTER VARYING)
RETURNS void AS
$BODY$
DECLARE
rec refcursor;
SQL VARCHAR;
city ALIAS FOR $1;
year_mi INTEGER;
year_ma INTEGER;
i INTEGER;
BEGIN
SQL := 'SELECT MIN(periodo) AS min,MAX(periodo) AS max
FROM servcon_poblaingas_'||city;
OPEN rec FOR EXECUTE SQL;
FETCH rec INTO year_mi,year_ma;
i := year_mi;
LOOP
SQL := 'SELECT AddGeometryColumn ('||QUOTE_LITERAL('servcon_poblaingas_'||city||'_'||i)||','||QUOTE_LITERAL('geom')||',4326,'||QUOTE_LITERAL('POINT')||',2)';
EXECUTE SQL;
SQL := 'UPDATE servcon_poblaingas_'||city||'_'||i||' set geom = GeometryFromText('||QUOTE_LITERAL('POINT('||cx||' '||cy||')')||',4326)';
EXECUTE SQL;
SQL := 'CREATE INDEX idx_servcon_poblaingas_'||city||'_'||i||' ON servcon_info2009 USING GIST (geom)';
EXECUTE SQL;
i := i + 1;
EXIT WHEN i > year_ma;
END LOOP;
RETURN;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
el error que me saca es este:
ERROR: column "cx" does not exist
CONTEXT: SQL statement "SELECT 'UPDATE servcon_poblaingas_'|| $1 ||'_'|| $2 ||' set geom = GeometryFromText('||QUOTE_LITERAL('POINT('||cx||' '||cy||')')||',4326)'"
PL/pgSQL function "p_poblaingas_geoindex" line 23 at assignment