Iteración de Cursores dinámicos en PL/PGSQL

limpby4
20 de Diciembre del 2005
Auxilio!!!!, necesito ayuda con lo siguiente:

Estoy trabajando con Postgres - PL/PGSQL, y con su respectivo backend que es el PGAdmin, tambien con EMS SQL Manager 2005 for PostgreSQL. Necesito hacer una función que haga una consulta dentro de un WHILE LOOP dentro del cual cada vez que se ejecuta una iteración los parámetros de la consulta sean dinámicos, es decir, algo asi:

CREATE OR REPLACE FUNCTION DinamicCursor(date[]) RETURNS Integer AS'

declare
ArrFecha date[] := $1;
cont Integer;

begin

cont := 1;

While cont <= ((Tamaño de ArrFecha)-2) LOOP
OPEN cursor FOR EXECUTE 'SELECT campo1,campo2
from tabla where CampoFechaIni >= ' || ArrFecha[cont]
' AND ' || CampoFechaFin <= ' ArrFecha[cont+1];

FETCH ALL IN cursor;

CLOSE cursor;
cont := cont + 2
end;
'
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION "DinamicCursor"(date[]) OWNER TO postgres;


En resúmen, lo que quiero hacer es que por cada iteración del WHILE el cursor se traiga de la base de datos un resultado que dependa de los diferentes pares de fechas que se encuentran en el arreglo date[] que se pasa a la función por parámetro.

Estoy comenzando con pl/pgsql y todavía no he encontrado la manera de hacer esto, si alguien sabe y me puede ayudar por favor lo publique en el foro o lo envíe a mi correo [email protected]

Es urgente!!!!!! :-(