Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2011, 09:35
omar125
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 1
buscador en postgres

Hola de antemano gracias por su ayuda.
Tengo un procedimiento almacenado en MYSQL que me sirve para buscar datos. Este lo quiero pasar a POSTGRES pero en funciones.

• Este es el procedimiento en MSQL:
CREATE PROCEDURE `USP_Buscador` (op tinyint, Cad1 varchar(100),Cad2 varchar(100),Cad3 varchar(100),
Cad4 varchar(150))
BEGIN
DECLARE consultar varchar(500);
Case op
When 1 then
SET @consultar=CONCAT('SELECT * FROM ',Cad1,' WHERE Estado=0 AND ',Cad2,' LIKE \'%',Cad3,'%\' LIMIT 200');
End case;
PREPARE consultar FROM @consultar;
EXECUTE consultar;
End

• Ahora lo implemento en Postgres así, pero no se que poner en el return:
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 **********