Me doy cuenta que hay un error en el valor de retorno del procedure, por lo que he leido debo usar un valor de retorno polimorfico, como este, pero no me sale, alguien que me oriente
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION prueba(IN id_num INTEGER)
RETURNS SETOF anyelement AS
'DECLARE
marca_opcion integer;
BEGIN
marca_opcion="SELECT cfg_ima_rutas.marca FROM cfg_ima_rutas WHERE cfg_ima_rutas.id="||id_num;
IF(marca_opcion>0) THEN
RETURN QUERY
SELECT
cfg_ima_rutas.ruta, cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca, cfg_ima_marcas.ruta, cfg_ima_marcas.proporcion
FROM cfg_ima_marcas JOIN cfg_ima_rutas ON (cfg_ima_marcas.id = cfg_ima_rutas.marca) WHERE cfg_ima_rutas.id=id_num;
ELSE
RETURN QUERY
SELECT
cfg_ima_rutas.ruta, cfg_ima_rutas.tipo, cfg_ima_rutas.porcentaje, cfg_ima_rutas.marca
FROM cfg_ima_rutas WHERE cfg_ima_rutas.id=id_num;
END IF;
END;'
LANGUAGE plpgsql