From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Freddy Martinez Garcia <freddy311082(at)gmail(dot)com> |
Cc: | gilberto(dot)castillo(at)etecsa(dot)cu, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: retornar varios resultados de consultas |
Date: | 2015-05-06 17:05:17 |
Message-ID: | 20150506170517.GZ2523@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Freddy Martinez Garcia escribió:
> por ahí va mi problema, por eso necesito, sacar varios resultados de
> varias consultas que me permitan inicializar la GUI con esos
> resultados., para eso el proc almac que yo ejecute, me debe devolver
> varios result set y yo luego poder procesarlos y mostrarlos…
Una función en Postgres no puede devolver múltiples conjuntos de
resultados distintos. Puede devolver un valor escalar, o un registro, o
un conjunto de registros que tengan todos la misma definición (núm de
columnas y tipo de cada una). Si los resultados de tus consultas tienen
todos la misma "forma", puedes hacer lo que quieres usando RETURN NEXT
registro por registro, pero no tendrás cómo saber (a menos que lo pongas
en una columna del resultado) qué registro corresponde a qué consulta.
Una manera de tratar este problema es retornando cursores abiertos. Una
función puede retornar "SETOF refcursor". Cada fila del resultado será
el nombre de un cursor, y la aplicación puede llamar FETCH con cada
nombre retornado, para extraer los resultados de cada cursor.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Gilberto Castillo | 2015-05-06 17:22:51 | Re: retornar varios resultados de consultas |
Previous Message | Gilberto Castillo | 2015-05-06 17:00:56 | Re: Ayuda para optimizar consulta |