Error Recursion

luis
03 de Febrero del 2006
Hola
al hacer dos funciones recursivas una respecto de la otra (con recursion mutua) y probarlo en un programa principal me da el siguiente mensaje de error:
declare
*
ERROR en línea 1:
ORA-04020: detectado interbloqueo al intentar bloquear el objeto SYS.PAR

Aqui muestro el codigo de estas funciones:

create or replace function impar (n natural) return boolean is
BEGIN
RETURN(null);
END;
create or replace function par(n natural) return boolean is
begin
if(n=0)then
return true;
else
return impar(n-1);
end if;
end par;
create or replace function impar(n natural) return boolean is
begin
if(n=0)then
return false;
else
return par(n-1);
end if;
end impar;
set serveroutput on;
declare
b boolean:=false;
begin
b:=par(0);
if b then dbms_output.put_line(\\\\'par\\\\');
end if;
end;


Gracias.
Saludos!


Jor-El
03 de Febrero del 2006
En este hilo tienes la solución, deberías utilizar el motor de busqueda vectorial de esta web que es de lo mejorcito que hay

http://www.programacion.com/bbdd/foros/34/msg/280940/