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 ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
