Skip site navigation (1) Skip section navigation (2)

Re: ayuda sobre SRF

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Ernesto Herrera <eherrera(at)estudiantes(dot)uci(dot)cu>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ayuda sobre SRF
Date: 2010-06-10 04:42:56
Message-ID: AANLkTilx8Sx2LUg0y1GxcFcu0zrFPNJeglQLamBkyVR5@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
2010/6/9 Ernesto Herrera <eherrera(at)estudiantes(dot)uci(dot)cu>:
> Hola!
> Tengo una función en PL/pgSQL que en su definición me construye una tabla
> temporal usando sql dinámico ya que sus atributos son variables y dependen
> de los parámetros  de entrada, la función me retorna void y para ver los
> resultados tengo que ejecutar la función y luego seleccionar de la tabla
> temporal.
> No existe forma que una función me devuelva un conjunto sin tener que
> especificar los atributos al llamarla??
> saludos.
>

no creo que tenga mucho sentido tener una funcion que sea
completamente ignorante en cuanto al resultado que va a regresar, me
parece un mal diseño y una pesima idea!

una vez dicho eso... podrias devolver todas las columnas en texto
concatenado usando algun caracter de separacion (digamos '|') y luego
haces algo como:

select cols[1], cols[2]
  from (select string_to_array(f1, '|') as cols from f1()) as foo;

donde f1() es la funcion que devuleve registros tipo text, que luego
son convertidos a un arreglo y solo te preocupas de usar los campos
indicando el indice... asumo que no pretendes que la aplicacion
tambien sea ignorante en cuanto a lo que espera de la funcion en un
momento dado verdad?

deficiencia, regresara todos los campos como texto

otra alternativa es al momento de llamar a la funcion indicar que
esperas que retorne:
select * from f1() as (col1 int, col2 text);

pero eso es lo que por algun motivo crees que no quieres

-- 
Jaime Casanova         www.2ndQuadrant.com
Soporte y capacitación de PostgreSQL

In response to

pgsql-es-ayuda by date

Next:From: Guillermo VillanuevaDate: 2010-06-10 11:17:37
Subject: Re: ayuda TRIGGER
Previous:From: Julio Cesar Rodriguez DominguezDate: 2010-06-10 04:30:09
Subject: Re: ayuda sobre SRF

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group