[Pgsql-ayuda] Migrar a PostgreSQL
Alvaro Herrera Munoz
alvherre@dcc.uchile.cl
Mon, 11 Aug 2003 15:52:11 -0400
On Mon, Aug 11, 2003 at 01:42:53PM -0400, jorge medina wrote:
> Cualquier consejo son bienvenidos. (Si alguien tiene alg?n ejemplo de
> FUNCTION(s), que regresen multiples registros (tuplas) y la forma de
> llamarlo desde un SQL tambien me interesa)
Muy simple:
CREATE OR REPLACE FUNCTION intervalos
(timestamp with time zone,
timestamp with time zone,
interval) RETURNS SETOF RECORD AS
'DECLARE
inicio ALIAS FOR $1;
valor timestamp with time zone;
final ALIAS FOR $2;
paso ALIAS FOR $3;
ret RECORD;
BEGIN
valor := inicio;
LOOP
IF valor >= final THEN
RETURN;
END IF;
SELECT INTO ret valor, valor+paso;
RETURN NEXT ret;
valor := (valor + paso);
END LOOP;
END;
' LANGUAGE plpgsql IMMUTABLE WITH (isstrict);
SELECT *
FROM intervalos('2003-05-01'::timestamptz, '2003-06-01'::timestamptz, '1 day')
AS foo(a timestamptz, b timestamptz);
--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"On the other flipper, one wrong move and we're Fatal Exceptions"
(T.U.X.: Term Unit X - http://www.thelinuxreview.com/TUX/)