From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Marcelo Alejandro España Koock <mespanak(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Funciones SQL |
Date: | 2014-10-15 16:10:42 |
Message-ID: | 20141015161042.GK7043@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Marcelo Alejandro España Koock escribió:
> Hola Buenos días,
>
> Estoy creando una función SQL en postgres que incluya una instrucción SQL
> como la siguiente:
>
> SELECT *
> FROM tabla1 INNER JOIN tabla2 ON tabla1.ID = tabla2.ID
>
> Tabla1 tiene campos ID, nombre, domicilio
> Tabla2 tiene campos ID, teléfono
>
> Cuando creo la función me solicita un tipo de datos para la RETURNS SETOF
>
> ¿Cómo creo ese tipo de datos si la consulta es una combinación de tablas?
Usa un tipo anónimo, pero tienes que declararlo en el SELECT:
create or replace function f() returns setof record language sql as $$ select oid, relname from pg_class; $$ ;
select * from f() as (oid oid, relname name);
O bien usa parámetros OUT, que indican el tipo de la consulta de salida:
create function f(out oid, out name) returns setof record language sql as $$ select oid, relname from pg_class; $$ ;
select * from f();
También podrías crear un tipo especial usando CREATE TYPE AS.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Marcelo Alejandro España Koock | 2014-10-15 17:09:14 | Re: Funciones SQL |
Previous Message | Mario Soto Cordones | 2014-10-15 15:10:14 | RE: Funciones SQL |