Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Quiero ejecutar un query

Estas en el tema de Quiero ejecutar un query en el foro de PostgreSQL en Foros del Web. Buen dia, como saben aqui dndo problemas a todos. He aqui mi problema tengo una funcion el cual me retorna una cadena de texto que ...
  #1 (permalink)  
Antiguo 27/04/2010, 11:55
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Quiero ejecutar un query

Buen dia,
como saben aqui dndo problemas a todos.
He aqui mi problema
tengo una funcion el cual me retorna una cadena de texto que es un query con columnas y registros dinamicos.
La cadena de texto esta bien, me regresaa lo que quiero.
El problema es que queremos que se muestre la tabla al llamar la funcion, no queremos que nos retorne la cadena de caracteres, espero me puedan ayudar.

si no me di a entender aqui les dejo un ejemplo de lo que hice(no es el mismo)


[URL="http://www.forosdelweb.com/f99/arbol-jerarquico-796183/"]http://www.forosdelweb.com/f99/arbol-jerarquico-796183/[/URL]
  #2 (permalink)  
Antiguo 27/04/2010, 13:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 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
  #3 (permalink)  
Antiguo 28/04/2010, 11:19
Avatar de calakra  
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Quiero ejecutar un query

buen dia.
aqui regresando con el problema. pues mira loq ue me mandaste no me funca debido a que tengo la vercion 2 de postgresql.
ya lo pense bien y creo que lo mejor seria crear una vista del query que tengo en la variable.

aqui esta mi nuevo problema pongo lo siguiente

CREATE VIEW arbolrutas AS EXECUTE cuery;

y no funca


tambien intente con este


CREATE VIEW arbolrutas AS cuery;

y sale error, en que estoy mal si me puede ayudar?

Etiquetas: ejecutar, query
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:43.