Re: Select sin AS

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Select sin AS
Date: 2004-07-04 01:28:41
Message-ID: 20040704012841.84567.qmail@web50002.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Martin,

Lo que ocurre es que cuando ejecutas select * from tuFuncion() as variable_varchar
estas diciendo que esperas una sola columna de tipo varchar, si devuelves mas columnas debes especificar las variables en las cuales las vas a recibir.

Una solucion puede ser usar un tipo de dato definido por ti que incluya todos los campos que regresas.

create type tuTipo (
col1 varchar,
col2 varchar
);

y devolver ese tipo de dato.

Ps: Yo hago esto comunmente con plpgsql supongo que debe funcionar tambien para funciones sql. (voy a probar)

Atentamente,
Jaime Casanova


Martín_Carrera <martincarrera(at)micam(dot)com(dot)ar> wrote:
Hola que tal...mi problema es el siguiente:

Creo una Función en la cual realizo un select de varias tablas :

CREATE OR REPLACE FUNCTION miFuncion()
RETURNS SETOF RECORD AS '
select nombre from tabla, paises, provincias......
inner join...
on...........
where........

'
LANGUAGE 'sql' VOLATILE;

Ejecuto la función

Select * from miFuncion() as (nombre varchar)

Resultado: | Fila | nombre (varchar) |
| 1 | Martín |
| 2 | Lucas |

Hasta ahora todo excelente, pero...
Cada vez que cambio algo en la función miFuncion() ( por ejemplo: agregar una columna nueva en el select: 'select nombre, columna_nueva from tabla, paises....' )
deberé cambiar la forma de ejecutar dicha función: Select * from miFuncion() as (nombre varchar, columna_nueva varchar) y en todos
los lugares en donde la ejecuto. Es un trabajo bastante laborioso no?

Necesito hacer directamente un:

Select * from miFuncion()

y que me devuelva la totalidad de las columnas que incluyo en el select de la función. Osea, que me devuelva nombre y columna_nueva sin incluir el As.
Al ejecutar el select sin el as, me da el error: "A column definition list is required for functions returning RECORD".

Espero que puedan ayudarme.
Mil Gracias.

---------------------------------
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Italo Osorio 2004-07-04 02:47:16 Porque Windows!!!!!!!
Previous Message Jaime Casanova 2004-07-04 01:14:12 Re: Consulta de query