Re: retornar varios resultados de consultas

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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