Ver Mensaje Individual
  #20 (permalink)  
Antiguo 06/04/2011, 10:40
nessemar
 
Fecha de Ingreso: noviembre-2010
Mensajes: 30
Antigüedad: 14 años
Puntos: 0
Respuesta: plpgsql: filtrar una consulta según otra consulta

Hola, veo que habéis tratado con el statement "RETURN QUERY EXECUTE", y yo estoy en un punto similar. Posteo aquí mi duda por si podeis echarme un cable, pero si no es apropiado y considerais que debo abrir otro post lo subsano de inmediato.

La cuestión es que gracias a vuestros avances he conseguido llegar al punto de tener la siguiente función.

Código:
CREATE OR REPLACE FUNCTION trastea(text) RETURNS SETOF temp AS
$BODY$
/*para hacer pruebas*/
DECLARE
	e record;
	sql text;
BEGIN
        sql := 'SELECT ST_SRID('|| $1||'.geom) FROM work.'|| $1||' WHERE gid = 1';
RETURN QUERY EXECUTE sql;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE STRICT
COST 100
ROWS 1000;
ALTER FUNCTION trastea(text) OWNER TO postgres;
que me permite comprobar que el SRID es el correcto (el SRID es un concepto cartográfico, y la función ST_SRID es una función de Postgis). temp es una tabla que creo expresamente en mi bbdd con un solo campo de tipo integer donde poder "volcar" la query.

Mi pregunta es si conoceis algún modo de poder volcar la query directamente sobre una variable declarada como integer.

Os comento también que esta función es ejecutada dentro de la estructura if de una segunda función; y claro, al no manejarme muy bien con el los tipos de datos me está saltando error.

¿Alguna idea para solucionar el problema?

Muchas gracias a ambos por la ayuda. Por la que me podáis prestar y por la ya prestada.