Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/04/2010, 13:03
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: Quiero ejecutar un query

según te entiendo calakra quieres devolver el valor de una consulta, pero llamada desde una función y no concatenandola.

Es decir, que la salida de la función sean los registros y no un valor unicamente....

si es así, espero que utilices una versión superior a la 8.3 ya que esto lo solucionan con una nueva función llamada return query

En un ejemplo sencillo:
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION retornar_query(INTEGER)
  2.   RETURNS SETOF INTEGER AS
  3. $body$
  4. BEGIN
  5. RETURN query SELECT campo_entero FROM usuarios;
  6. END;
  7. $body$
  8. LANGUAGE 'plpgsql' VOLATILE;

De esta forma retorna multiples valores en filas.

Si necesitas mas columnas en el retorno, hay que hacer un pequeño ajuste creando un tipo de dato con create type con las columnas a retornar.

Si tienes una versión anterior a la 8.3, esto se puede lograr con la sentencia return next pero es un trabajo mas engorroso, ya que es necesario meter la sentencia dentro de un for para retornar registro por registro.

Lee el enlace y cuentanos si es lo que requieres o si necesitas de otro tip adicional para conseguir lo que necesitas.

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