From: | Gustavo Vaccaro <gustavo_vaccaro(at)fibertel(dot)com(dot)ar> |
---|---|
To: | arpug(at)postgresql(dot)org |
Subject: | Llamadas recursivas en funciones de Base de Datos |
Date: | 2011-02-10 14:17:00 |
Message-ID: | 4D53F35C.8020101@fibertel.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | arpug |
Me olvide de aclarar que la funcion esta creada con PL/pgSQL
-------- Mensaje original --------
Asunto: Llamadas recursivas en funciones de Base de Datos
Fecha: Thu, 10 Feb 2011 11:06:19 -0300
De: Gustavo Vaccaro <gustavo_vaccaro(at)fibertel(dot)com(dot)ar>
A: arpug(at)postgresql(dot)org
Hola,
tengo una funcion (fn_acumuxcuenta) en postgres 8.4 que hace una llamada
recursiva a si misma.
*** FUNCION fn_acumuxcuenta *****
declare c_monto decimal(15,2);
declare c_ctamadre scroll cursor for select id_cuenta from
plancta where id_nroemp = arg_nroemp and id_ctamadre = arg_cuenta and
id_cuenta<> id_ctamadre order by id_cuenta asc;
BEGIN
.....
*** mas codigo ****
.....
linea 23: open c_ctamadre;
loop
fetch next from c_ctamadre into s_cuenta;
if not found then
exit;
end if;
linea 29:
c_monto=c_monto+fn_acumuxcuenta(arg_nroemp,arg_nroserie,s_cuenta,arg_fecdes,arg_fechas,arg_dh);
end loop;
close c_ctamadre;
return(c_monto);
END
Esta funcion la utilizo en una vista para que me devuelva el monto total acumulado.
Cuando ejecuto la vista me tira el siguiente error:
ERROR: el cursor «c_ctamadre» ya está en uso
CONTEXT: función PL/pgSQL «fn_acumuxcuenta» en la línea 23 en OPEN
función PL/pgSQL «fn_acumuxcuenta» en la línea 29 en asignación
********** Error **********
ERROR: el cursor «c_ctamadre» ya está en uso
Estado SQL:42P03
Contexto:función PL/pgSQL «fn_acumuxcuenta» en la línea 23 en OPEN
función PL/pgSQL «fn_acumuxcuenta» en la línea 29 en asignación
Agradeceria alguna ayuda para intentar solucionar el problema.
La funcion proviene de una migracion de Sybase Adaptive Server Anywhere y la
recusividad funcionaba perfecto.
Saludos
--
Gustavo J. Vaccaro
http://www.gjv.com.ar
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo Franco | 2011-02-10 16:06:51 | Re: Llamadas recursivas en funciones de Base de Datos |
Previous Message | Gustavo Vaccaro | 2011-02-10 14:06:19 | Llamadas recursivas en funciones de Base de Datos |