Iteraci贸n de Cursores din谩micos en PL/PGSQL
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!!!!!! :-(
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!!!!!! :-(