Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PostgreSQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=42)
-   -   Funciones en Postgres (https://www.clubdelphi.com/foros/showthread.php?t=47548)

PabloTech 30-08-2007 22:14:31

Funciones en Postgres
 
Hola a todos...

Según estuve leyendo, las funciones creadas en Postgres solo devuelven un valor y los procedimientos una serie de valores. La pregunta del millón es: ¿Cómo puedo hacer yo para que una función me devuelva el resultado de una consulta (SELECT...)?

Ya probé usando tablas temporales pero no pude hacerlo funcionar. ¿Alguna idea? :confused:

Leviatan 04-12-2007 22:26:14

Hola:

Si vas a devolver todas las columnas de una sola tabla, deberías hacer lo siguiente:

Código SQL [-]
-- Cuerpo de la función
declare
  Fila nombre_tabla;
begin
  for Fila in
    select * from nombre_tabla loop
    return next Fila;
  end loop
end;

Si vas a devolver columnas de varias tablas (joins) deberías primeramente crear un type (tipo) con los mismos tipos de datos de las columnas originales y hacer algo como lo siguiente:

Código SQL [-]
-- Cuerpo de la función
declare
  Fila tipo_creado;
begin
  for Fila in
    select columna1, columna2, columna3 from tabla_1 t1 join tabla2 t2 on
             t1.id_columna = t2.id_columna loop
    return next Fila;
  end loop;
end;

Espero te sirva.


La franja horaria es GMT +2. Ahora son las 07:39:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi