Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2009, 15:57
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: SQL dinamico en funcion pgsql

si se puede.

Puedes utilizar esta función

Código sql:
Ver original
  1. CREATE OR REPLACE FUNCTION consultar_con_where(parametro_where text)
  2. RETURNS SETOF tabla_prueba AS
  3. $BODY$
  4. DECLARE
  5. fila tabla_prueba%rowtype;
  6. SQL text;
  7. BEGIN
  8. SQL = 'select id,nombre FROM tabla_prueba ' || parametro_where;
  9.  
  10.  FOR fila IN EXECUTE SQL
  11.  LOOP
  12.  RETURN NEXT fila;
  13. END LOOP;
  14. RETURN;
  15. END;
  16. $BODY$
  17. LANGUAGE 'plpgsql' VOLATILE;

Para el caso lo hago con una tabla llamada tabla_prueba
Código sql:
Ver original
  1. pruebas=> SELECT *FROM consultar_con_where('');
  2.  id | nombre
  3. ----+---------
  4.   1 | daniel
  5.   2 | sara
  6.   3 | natalia
  7. (3 filas)
  8.  
  9. pruebas=> SELECT *FROM consultar_con_where('where id=1');
  10.  id | nombre
  11. ----+--------
  12.   1 | daniel
  13. (1 fila)
  14.  
  15. pruebas=>

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming