Skip site navigation (1) Skip section navigation (2)

Re: Llamadas recursivas en funciones de Base de Datos

From: Gustavo Vaccaro <gustavo_vaccaro(at)fibertel(dot)com(dot)ar>
To: unlisted-recipients:; (no To-header on input)
Cc: arpug(at)postgresql(dot)org
Subject: Re: Llamadas recursivas en funciones de Base de Datos
Date: 2011-02-16 13:21:53
Message-ID: 4D5BCF71.4060203@fibertel.com.ar (view raw or flat)
Thread:
Lists: arpug
Emanuel,
la funcion es recursiva porque necesito llamarla un numero variable de veces.
Va recorriendo un plan de cuentas ordenado jerarquicamente y con la funcion 
acumulo la rama inferior.
Esta funcion me funcionaba perfecto en Sybase. Al migrar a Postgres empezo el 
problema.
Hasta ahora lo unico que se me ocurre es poder definir el cursor como privado, 
pero no se como hacerlo.
Sino, voy a tener que escribir un bucle "loquisimo" como vos decis. Pero no 
quiero llegar a esta instancia.
Saludos


Gustavo J. Vaccaro
http://www.gjv.com.ar


El 16/02/2011 10:16 a.m., Emanuel Calvo Franco escribió:
> El día 16 de febrero de 2011 14:06, Gustavo Vaccaro
> <gustavo_vaccaro(at)fibertel(dot)com(dot)ar>  escribió:
>> Disculpen que insista
>> ¿pero alguien sabe porque me tira el error cuando uso una funcion en forma
>> recurvisa?
>> el 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
>>
>> aparentemente se produce porque la declaracion del cursor "c_ctamadre" sigue
>> viva de una llamada de funcion a la otra, pero no se como hacerla privada de
>> la funcion.
> Es lo que estaba leyendo en codigo el otro día... haría un bucle loquisimo ...
>
> Yo lo que haría sería otra función sin el cursor. de esa manera no
> abre nuevamente
> el cursor, lo que ya no sería recursiva, sería una función normal, que
> solo calcule el
> acumulado de la cuenta.
>
> Perdón por tardar en la respuesta :)
>
>

In response to

Responses

arpug by date

Next:From: Emanuel Calvo FrancoDate: 2011-02-16 15:44:47
Subject: Re: Llamadas recursivas en funciones de Base de Datos
Previous:From: Emanuel Calvo FrancoDate: 2011-02-16 13:16:01
Subject: Re: Llamadas recursivas en funciones de Base de Datos

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group