Re: Mi primera funcion en POSTGRESQL

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Ever Daniel Barreto Rojas <ebarreto(at)nexusit(dot)com(dot)py>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Mi primera funcion en POSTGRESQL
Date: 2007-10-06 19:23:51
Message-ID: 20071006192351.GJ7190@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ever Daniel Barreto Rojas escribió:
> El 06/10/2007 a las 12:07 p.m., escribiste:
> >> De todas maneras me gustaria saber(de curiosidad...) como solucionar lo que
> >> pase
> > Al ejecutar la funcion debes especificar el tipo de retorno, algo asi:
> > select * from funcion(parametro) as func(a int, b text, c timestamp, ...)
> > etc.
> > Alternativamente, en lugar de definir la funcion con RETURNS SETOF
> > RECORD, puedes hacer una funcion con parametros OUT. De esa forma no
> > tienes que especificar el tipo de dato de salida al momento de invocar
> > la funcion.
>
> creo que otra alternativa, es crear un TYPE nombre_tipo y hacer en
> la función RETURNS SETOF nombre_tipo
>
> así te ahorras el "as func(..."
>
> creo que era así... si no estoy equivocado

Sí, era así, pero el problema es que si vas a crear 500 funciones
necesitas 500 tipos, lo cual es muy incómodo.

En realidad lo más fácil es cuando la función retorna el mismo tipo que
una tabla que existe en el sistema. Entonces puedes hacer "RETURNS
SETOF nombre_tabla". (Básicamente es lo mismo que RETURNS SETOF
nombre_tipo", con la diferencia que no necesitas crear el tipo
separadamente. Cada vez que creas una tabla, se crea un tipo con el
mismo nombre).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ever Daniel Barreto Rojas 2007-10-06 20:06:06 Re[2]: Mi primera funcion en POSTGRESQL
Previous Message Ever Daniel Barreto Rojas 2007-10-06 18:38:45 Re[2]: Mi primera funcion en POSTGRESQL