Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

exception dentro de loop

Estas en el tema de exception dentro de loop en el foro de Oracle en Foros del Web. Hola. Tengo un problema con exceptions dentro de un loop. El codigo es el siguiente: Código PHP: v_codf  :=  '132' ; count  :=  1 ; ...
  #1 (permalink)  
Antiguo 16/11/2009, 06:57
Avatar de magam  
Fecha de Ingreso: julio-2006
Ubicación: Florencio Varela, Buenos Aires, Argentina
Mensajes: 97
Antigüedad: 18 años, 4 meses
Puntos: 1
exception dentro de loop

Hola. Tengo un problema con exceptions dentro de un loop.
El codigo es el siguiente:
Código PHP:
v_codf := '132';
count := 1;
LOOP
       SELECT test_line
parent_code
       into v_lvl
v_lvl_p
       from xxxo
       where code_relation 
v_codf;
       
exception when others then
           v_lvl 
:= 'N';

       if 
v_lvl <> 'Y'
           
v_codf := V_LVL_P;
           
v_lvl := null;
           
v_lvl_p := null;
           
count := count 1;
      else 
            
v_ok := true;
       exit 
when 
                    v_ok 
true or count 10;
END LOOP

el problema es que tengo que hacer un loop hasta que la variable v_lvl tenga el valor 'Y' o pase 10 veces por el loop.
lo quen ose es como capturar la exception si no encuentra datos para que ponga la variable v_lvl en 'N' y siga procesando sin salir del while hast que encuentre un valor o prosece 10 veces el loop.
Alguna idea??
muchas gracias !
  #2 (permalink)  
Antiguo 20/11/2009, 13:23
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 5 meses
Puntos: 43
Respuesta: exception dentro de loop

¿ Donde tienes el THEN del IF ?
El EXCEPTION debe de ir inmediatamente antes del END. Si lo necesitas antes, create otro BEGIN...END
El EXIT WHEN no debe de ir en un ELSE ( puedes entrar en un bucle infinito )
¿ donde tienes el END IF ?

En definitiva, ese codigo no hay por donde cogerlo, lo que me hace pensar que te estás burlando de nosotros.

Suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:13.