Cita: CREATE OR REPLACE FUNCTION USP_Buscador(op integer, Cad1 varchar(100),Cad2 varchar(100),Cad3 varchar(100),Cad4 varchar(150))
RETURNS Buscador AS
$BODY$
DECLARE consultar varchar(500);
BEGIN
case op
when 1 then
SET @consultar=CONCAT('SELECT * FROM ',Cad1,' WHERE Estado=0 AND ',Cad2,' ILIKE \'%',Cad3,'%\' LIMIT 200');
end case;
PREPARE consultar FROM @consultar;
EXECUTE consultar;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION USP_Buscador(integer, varchar(100), varchar(100), varchar(100), varchar(150)) OWNER TO postgres;
• Si ejecuto así en postgres me da un mensaje:
ERROR: no existe el tipo «buscador»
********** Error **********
omar125.
Como ves en la función que pones, dices que el el returns devuelva buscador. En una función de postgresql se deben retornar tipos de datos existentes. Los predefinidos en postgresql son varchar,integer,date,timestamp,bytea y unos cuantos mas. Sin embargo, postgresql tiene la capacidad de crear nuestros propios tipos de datos. Cuando retornas buscador, asumí que tal vez habias creado un type llamado buscador y que no lo estaba reconociendo.
En que te basas para poner la palabra buscador en el returns? donde lo viste? algun link?