Procédure avec opération sur des dates
Bonjour à tous,
Je viens de créer un procédure qui prend en paramètre une date 'DD/MM/YY'
Cette procédure doit vérifier si la date est égale ou inférieure à la date courant moins un mois. Par exemple nous sommes le 01/04/09, la date en paramètre doit donc être égale ou supérieure au 01/03/09. Si c'est le cas on update la DB.
Voila ma première procédure mais une erreur de conversion apparaît lors de l'exécution (character to number conversion error)... et ça m'étonnerait que la condition du if fonctionne....:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
create or replace procedure SP_TAXER
(
DATE_DEB in date
)
is
begin
if ((to_char(SYSDATE(),'DD/MM/YY') - to_char(DATE_DEB,'DD/MM/YY'))<1)then
update CONTRAT
set MNT_TPS_CO = MNT_CONTRAT_CO * 0.05,
MNT_TVQ_CO = MNT_CONTRAT_CO * 0.075
where DATE_CONTRAT > DATE_DEB;
end if;
end; |
J'ai également essayé comme ceci, ça fonctionne mais il n'a pas toujours 30 jours dans un mois... :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
create or replace procedure SP_TAXER
(
DATE_DEB in date
)
is
begin
if ((to_char(SYSDATE(),'DDD') - to_char(DATE_DEB,'DDD'))<31)then
update CONTRAT
set MNT_TPS_CO = MNT_CONTRAT_CO * 0.05,
MNT_TVQ_CO = MNT_CONTRAT_CO * 0.075
where DATE_CONTRAT > DATE_DEB;
end if;
end; |
Si quelqu'un peu m'aider
Merci,
AD