OLD VERSION FUNCTION MOST_RECENT_DATE_4 (a IN DATE, b IN DATE, c IN DATE, d IN DATE) RETURN DATE IS BEGIN IF a > b THEN -- a,c,d IF a > c THEN -- a,d IF a > d THEN RETURN a; ELSE RETURN d; END IF; ELSE -- c,d IF c > d THEN RETURN c; ELSE RETURN d; END IF; END IF; ELSE -- b,c,d IF b > c THEN -- b,d IF b > d THEN RETURN b; ELSE RETURN d; END IF; ELSE -- c,d IF c > d THEN RETURN c; ELSE RETURN d; END IF; END IF; END IF; return null; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error occurred in MOST_RECENT_DATE_4 - '|| SQLCODE || ' -ERROR- ' || SQLERRM); END; NEW VERSION FUNCTION MOST_RECENT_DATE_4 (ain IN DATE, bin IN DATE, cin IN DATE, din IN DATE) RETURN DATE IS a DATE; b DATE; c DATE; d DATE; BEGIN IF ain is null THEN a := to_date('1.4.2000','DD.MM.YYYY'); ELSE a := ain; END IF; IF bin is null THEN b := to_date('1.4.2000','DD.MM.YYYY'); ELSE b := bin; END IF; IF cin is null THEN c := to_date('1.4.2000','DD.MM.YYYY'); ELSE c := cin; END IF; IF din is null THEN d := to_date('1.4.2000','DD.MM.YYYY'); ELSE d := din; END IF; IF a > b THEN -- a,c,d IF a > c THEN -- a,d IF a > d THEN RETURN a; ELSE RETURN d; END IF; ELSE -- c,d IF c > d THEN RETURN c; ELSE RETURN d; END IF; END IF; ELSE -- b,c,d IF b > c THEN -- b,d IF b > d THEN RETURN b; ELSE RETURN d; END IF; ELSE -- c,d IF c > d THEN RETURN c; ELSE RETURN d; END IF; END IF; END IF; return null; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error occurred in MOST_RECENT_DATE_4 - '|| SQLCODE || ' -ERROR- ' || SQLERRM); END;