Pretendo crear la siguiente función que elimine aquellos registros de la primera tabla que "espacialmente" existan en la segunda tabla (comparo sus columnas geométricas)
Código:
El caso es que me salta el siguiente error:CREATE OR REPLACE FUNCTION srmdiferencia_espacial(text, text) RETURNS text AS $BODY$ /*Elimina de $1 aquellas entidades que es coincidan espacialmente con $2*/ DECLARE ret text; BEGIN ret='OK'; EXECUTE 'DELETE from '||$1||' WHERE ST_Equals('||$1||'.geom,'||$2||'.geom) = ''true'''; RETURN ret; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE STRICT COST 100; ALTER FUNCTION srmdiferencia_espacial(text, text) OWNER TO postgres;
ERROR: falta una entrada para la tabla «vertexline_ferrocarril» en la cláusula FROM
SQL state: 42P01
Context: PL/pgSQL function "srmdiferencia_espacial" line 7 at sentencia EXECUTE
donde «vertexline_ferrocarril» es el resultado de sustituir $2 por el valor introducido en el segundo parámetro de la llamada a la función.
¿Alguien sabe decirme cual es el problema y/o proponerme una solución?. Gracias de antemano.