Un ejemplo de una función
Código sql:
Ver originalCREATE OR REPLACE FUNCTION multiplicar(INTEGER,INTEGER)
RETURNS INTEGER AS
$BODY$
DECLARE
resultado INTEGER;
BEGIN
resultado:=$1*$2;
RETURN resultado;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
si la ejecutas:
Código sql:
Ver originalpruebas=> SELECT multiplicar(4,5);
multiplicar
-------------
20
(1 fila)
Un ejemplo de función con for.
Código sql:
Ver originalCREATE OR REPLACE FUNCTION sumar_dias_a_fecha(DATE,INTEGER)
RETURNS DATE AS
$BODY$
DECLARE
fecha_final DATE;
contador INTEGER;
BEGIN
fecha_final=$1;
FOR contador IN 1..$2
loop
fecha_final = fecha_final + 1;
END loop;
RETURN fecha_final;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Si lo corremos
Código sql:
Ver originalpruebas=> SELECT sumar_dias_a_fecha('2009-11-04'::DATE,5);
sumar_dias_a_fecha
--------------------
2009-11-09
(1 fila)
le suma 5 días a una fecha.
Espero esta sea una base para que logres tu objetivo