BEGIN
VAR1 := P3;
IF ((P4 <= 0 OR P4 IS NULL) AND (P1 > 0)) OR ((P1 <= 0) OR (P1 IS NULL) )
THEN VRESULT := 'Taux1';
ELSE
IF P5 >= '2006' THEN IF P6 > 0 AND P3 IS NULL THEN VAR1 := P6; END IF;
IF ( P7 > 0 AND P6 > 0 AND P8 > 0) OR
((NVL(P7,0) = 0) AND (P6 > 0) AND (P9 < 15000000 OR P9 IS NULL) AND (UPPER(P10) = 'N')) THEN
VRESULT := 'Taux2';
END IF;
END IF;
IF NVL(VAR1,0) = 0 AND NVL(P_MNT_L420B,0) = 0 THEN VRESULT := 'Taux3';
END IF;
IF VAR1 > 0 AND NVL(P_MNT_L420B,0) = 0 THEN VRESULT := 'Taux4';
END IF;
IF P5 >= '2004' THEN VRESULT := 'Taux4';
END IF;
IF P5 <= '2003' THEN VRESULT := 'Taux5';
END IF;
END IF;
RETURN VRESULT;
END;
-- My query is:
SELECT *
FROM TABLE_1 TABLE_1
RIGHT OUTER JOIN TABLE_2 TABLE_2 SUR TABLE_1.ID_USAGER_SM = TABLE_2.ID_USAGER_SM
LEFT OUTER JOIN table_3 table_3 SUR TABLE_3.CAE_CLASSE_SM = TABLE_1.CAE_SM
LEFT OUTER JOIN TABLE_4 TABLE_4
ON ((TABLE_4.Taux = <b>F_CALCUL_TAUX</b> (TABLE_2.P1, TABLE_2.P2, TABLE_2.P3, TABLE_2.P4, TABLE_2.P5, TABLE_2.P6, TABLE_2.P7, TABLE_2.P8, TABLE_2.P9, TABLE_2.P10)) )
LEFT OUTER JOIN TABLE_5 TABLE_5 ON TABLE_5.CODE_POSTAL_REGION_SM = TABLE_1.CODE_POSTAL_ADR_ORIG_SM
LEFT OUTER JOIN TABLE_6 TABLE_6 ON TABLE_6.DATE_SM = TABLE_2.DATE_SM -