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

Retorno de varias tablas (diferentes)

Estas en el tema de Retorno de varias tablas (diferentes) en el foro de PostgreSQL en Foros del Web. Buenas amigos, tengo la siguiente duda, es posible de volver desde una funcion almacenada un con junto de resultados diferentes, ej: ***************Tabla 1********** *Columna 1 ...
  #1 (permalink)  
Antiguo 22/05/2014, 14:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 36
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta Retorno de varias tablas (diferentes)

Buenas amigos, tengo la siguiente duda, es posible de volver desde una funcion almacenada un con junto de resultados diferentes, ej:

***************Tabla 1**********
*Columna 1 * Columna 2 * Columna3*
******************************

************Tabla 2******************
*Columna 1 * Columna 2 * Columna3*Col 4 *
***********************************

Siendo tabla 1 y tabla 2 diferentes.. o poder mostrarlas una junto a la otra con diferente
cantidad de registros...

Es posible?

He encontrado dos posibles caminos:
1. Declarar al momento de creacion la tabla a devolver..
Cita:
1. Declarar al momento de creacion la tabla a devolver..
ej: CREATE OR REPLACE FUNCTION mifuncionx(valor 1, valor 2) RETURNS setof mitabla_a_devolver(col 1, col 2 ... col n) AS ......

2. en vez de declarar la tabla a devolver utilizo "record" (...Returns setof record as... )
y cuando llamo a la función declaro las columnas que se retornan
"SELECT * FROM mifuncionx(valor 1,valor2) as tabla(col 1, col 2, ... , col n )"
Pero ni uno de estos caminos me sirve, ya que necesito que mi funcion retorne dos tablas totalmente diferentes y no quiero estar declarando toda la tabla a devolver, por cada vez que llamo a la funcion...

Última edición por kadzu; 29/05/2014 a las 15:37 Razón: agregar info

Etiquetas: plpgsql, postgres, tablas
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 06:03.