Mira esta secuencia.
hice una tabla como la tuya.
copié y pegué tu función sin cambiarle una sola coma.
Código SQL:
Ver originalpruebas=> CREATE TABLE tces_pro(pro_id INTEGER,pro_des TEXT);
CREATE TABLE
pruebas=> INSERT INTO tces_pro VALUES(1,'prueba1');
INSERT 0 1
pruebas=> INSERT INTO tces_pro VALUES(2,'prueba2');
INSERT 0 1
pruebas=> CREATE OR REPLACE FUNCTION public.sp_bus_des
pruebas-> (
pruebas(> des CHAR
pruebas(> )
pruebas-> RETURNS SETOF public.tces_pro AS
pruebas-> $$
pruebas$> DECLARE
pruebas$> SQL text;
pruebas$>
pruebas$> BEGIN
pruebas$>
pruebas$> SQL := 'SELECT * FROM public.tces_pro WHERE public.tces_pro.pro_des LIKE ''%'||des||'%'' ORDER BY public.tces_pro.pro_id';
pruebas$>
pruebas$> RETURN QUERY EXECUTE SQL;
pruebas$>
pruebas$>
pruebas$> END;
pruebas$> $$
pruebas-> LANGUAGE 'plpgsql'
pruebas-> VOLATILE
pruebas-> CALLED ON NULL INPUT
pruebas-> SECURITY INVOKER;
CREATE FUNCTION
pruebas=>
pruebas=> ALTER FUNCTION public.sp_bus_des(des CHAR)
pruebas-> OWNER TO postgres;
ALTER FUNCTION
pruebas=> SELECT *FROM sp_bus_des('1');
pro_id | pro_des
--------+---------
1 | prueba1
(1 fila)
pruebas=> SELECT *FROM sp_bus_des('2');
pro_id | pro_des
--------+---------
2 | prueba2
(1 fila)