duda con valor que devuelve una funcion
Publicado por Lore (9 intervenciones) el 06/10/2009 10:05:24
Hola.
Tengo una duda con respecto a las funciones PL/SQL.
He visto una en la que durante el código tiene varios 'return', según las condiciones que se cumplan, pero al final, antes del "end" de la función, tiene otro "return". ¿Siempre se devlverá este último valor o cuando aparece un "return" durante en código se termina de ejecutar la función?
Pongo el ejemplo para que entendais mejor.
Gracias.
IF p_fecha IS NOT NULL THEN
v_dias_antigua := extract(DAY FROM p_fecha);
IF v_dias_antigua = 5 or v_dias_antigua = 20 THEN
return TRUE;
ELSIF v_dias_antigua > 5 AND v_dias_antigua < 20 THEN
v_fecha_nueva := (p_fecha - v_dias_antigua) + 5;
IF ffecobls(v_codterri, 0, v_fecha_nueva) = p_fecha THEN
return TRUE;
END IF;
ELSE
v_fecha_nueva := (p_fecha - v_dias_antigua) + 20;
IF ffecobls(v_codterri, 0, v_fecha_nueva) = p_fecha THEN
return TRUE;
END IF;
END IF;
END IF;
return FALSE;
Tengo una duda con respecto a las funciones PL/SQL.
He visto una en la que durante el código tiene varios 'return', según las condiciones que se cumplan, pero al final, antes del "end" de la función, tiene otro "return". ¿Siempre se devlverá este último valor o cuando aparece un "return" durante en código se termina de ejecutar la función?
Pongo el ejemplo para que entendais mejor.
Gracias.
IF p_fecha IS NOT NULL THEN
v_dias_antigua := extract(DAY FROM p_fecha);
IF v_dias_antigua = 5 or v_dias_antigua = 20 THEN
return TRUE;
ELSIF v_dias_antigua > 5 AND v_dias_antigua < 20 THEN
v_fecha_nueva := (p_fecha - v_dias_antigua) + 5;
IF ffecobls(v_codterri, 0, v_fecha_nueva) = p_fecha THEN
return TRUE;
END IF;
ELSE
v_fecha_nueva := (p_fecha - v_dias_antigua) + 20;
IF ffecobls(v_codterri, 0, v_fecha_nueva) = p_fecha THEN
return TRUE;
END IF;
END IF;
END IF;
return FALSE;
Valora esta pregunta


0