Incrémentation date par mois avec pl/sql

Bonjour,
j'essaye d'implémenter un code pl/sql qui permet de générer automatique une date selon l'option quand on coche 'Trois (3) mois' ou 'Six (6) mois ' ou 'Un an '.

Mon problème ca me renvoie l'option que J'ai déclaré au début et le reste ne marche pas.

Voici mon code:

create or replace function get_date_fin (l_date_debut date)
return date
is
-- declaration des variables

l_duree_tontine VARCHAR2(30) :='Un an ';

begin
-- les instructions
if l_duree_tontine = 'Trois (3) mois' then
return l_date_debut + 91 ;
elsif l_duree_tontine = 'Six (6) mois ' then
return l_date_debut + 182 ;
elsif l_duree_tontine = 'Un an ' then
return l_date_debut + 365 ;
else
return l_date_debut ;
end if ;
end get_date_fin;

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour,
    pourquoi as-tu assigné une valeur au départ?
    as-tu essayé de faire autrement?
    1. Bonjour, oui j'ai essayé des trucs mais ça ne passait pas.
      Au depart c'est juste une déclaration. Mais le programme de rentrer dans le if. Mm si j'enlève la déclaration ça me retourne l_date_debut
    2. Contributeur
      @momito_4319peut-être faut-il passer l'option en paramètre?
  2. C'est à dire?
    1. Contributeur
      function get_date_fin (l_date_debut date, l_duree_tontine)
    2. @yg_beBonjour,

      quand je le passe en paramètre ça ne prend pas

      Voici l'erreur :
      Compilation failed,line 1 (15:20:24)
      PLS-00103: Encountered the symbol ")" when expecting one of the following: in out <an identifier> <a double-quoted delimited-identifier> table ... columns long double ref char time timestamp interval date binary national character nchar The symbol "<an identifier>" was substituted for ")" to continue.
    3. Contributeur
      @momito_4319je pense que tu dois ajouter le type de paramètre.