1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| CREATE OR REPLACE FUNCTION CALCUL_AGE_MOIS (
CODE_ENFANT IN USAGER.CODENF%TYPE )
RETURN NUMBER IS
Li_age NUMBER;
JOUR Number(2);
MOIS Number(2);
ANNEE Number(6);
JourCou NUMBER;
MoisCou NUMBER;
AnCou NUMBER;
JourNai NUMBER;
MoisNai NUMBER;
AnNai NUMBER;
BEGIN
AnCou:= TO_CHAR(SYSDATE,'YYYY');
MoisCou:= TO_CHAR(SYSDATE,'MM');
JourCou:= TO_CHAR(SYSDATE,'DD');
SELECT TO_NUMBER(TO_CHAR(DATNAI,'YYYY')), TO_NUMBER(TO_CHAR(DATNAI,'MM')), TO_NUMBER(TO_CHAR(DATNAI,'DD')) INTO AnNai,MoisNai,JourNai
FROM USAGER
WHERE CODENF=CODE_ENFANT;
if AnCou>=ANNEE then
begin
if JourNai>JourCou then
begin
MoisNai:= MoisNai+1;
end;
if MoisNai>MoisCou then
begin
AnNai:= AnNai+1;
MOIS:= 12-MoisNai+MoisCou;
end;
else
begin
MOIS:= MoisCou-MoisNai;
ANNEE:= AnCou-AnNai;
end;
end if;
Li_age:= ( ANNEE * 12) + MOIS;
return (Li_age) ;
END;
/ |
Partager