Re: Funciones SQL

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

In response to

  • Funciones SQL at 2014-10-15 13:56:33 from Marcelo Alejandro España Koock

Browse pgsql-es-ayuda by date

  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