Ver Mensaje Individual
  #15 (permalink)  
Antiguo 05/05/2011, 07:34
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Function Like no funca

Mira esta secuencia.

hice una tabla como la tuya.
copié y pegué tu función sin cambiarle una sola coma.

Código SQL:
Ver original
  1. pruebas=> CREATE TABLE tces_pro(pro_id INTEGER,pro_des TEXT);
  2. CREATE TABLE
  3. pruebas=>  INSERT INTO tces_pro VALUES(1,'prueba1');
  4. INSERT 0 1
  5. pruebas=>  INSERT INTO tces_pro VALUES(2,'prueba2');
  6. INSERT 0 1
  7. pruebas=> CREATE OR REPLACE FUNCTION public.sp_bus_des
  8. pruebas-> (
  9. pruebas(>   des  CHAR
  10. pruebas(> )
  11. pruebas-> RETURNS SETOF public.tces_pro AS
  12. pruebas-> $$
  13. pruebas$> DECLARE
  14. pruebas$>        SQL text;
  15. pruebas$>
  16. pruebas$> BEGIN
  17. pruebas$>
  18. pruebas$> SQL := 'SELECT * FROM public.tces_pro WHERE public.tces_pro.pro_des LIKE ''%'||des||'%'' ORDER BY public.tces_pro.pro_id';
  19. pruebas$>
  20. pruebas$> RETURN QUERY EXECUTE SQL;
  21. pruebas$>
  22. pruebas$>
  23. pruebas$> END;
  24. pruebas$> $$
  25. pruebas-> LANGUAGE 'plpgsql'
  26. pruebas-> VOLATILE
  27. pruebas-> CALLED ON NULL INPUT
  28. pruebas-> SECURITY INVOKER;
  29. CREATE FUNCTION
  30. pruebas=>
  31. pruebas=> ALTER FUNCTION public.sp_bus_des(des CHAR)
  32. pruebas->   OWNER TO postgres;
  33. ALTER FUNCTION
  34. pruebas=> SELECT *FROM sp_bus_des('1');
  35.  pro_id | pro_des
  36. --------+---------
  37.       1 | prueba1
  38. (1 fila)
  39.  
  40.  
  41. pruebas=> SELECT *FROM sp_bus_des('2');
  42.  pro_id | pro_des
  43. --------+---------
  44.       2 | prueba2
  45. (1 fila)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming