Salut tout le monde,

J'ai un problème avec la fonction TO_DATE() !!

Quand je lance le script suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DECLARE
    v_date_1              VARCHAR2(5);
    v_date_2              VARCHAR2(5);
BEGIN
 
    v_date_1    :=  TO_CHAR(SYSDATE + 15    , 'DD/MM');
    v_date_2    :=  TO_CHAR(SYSDATE         , 'DD/MM');
 
    dbms_output.put_line(v_date_1);
    dbms_output.put_line(v_date_2);
 
    IF  TO_DATE(v_date_1, 'DD/MM') > TO_DATE(v_date_2, 'DD/MM')
    THEN
        dbms_output.put_line('YES');
    END IF;
 
EXCEPTION
WHEN OTHERS THEN
  dbms_output.put_line(SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1, 255));
  dbms_output.put_line(dbms_utility.format_error_backtrace);
END;
Tout marche bien, la ligne 12
Code : Sélectionner tout - Visualiser dans une fenêtre à part
IF  TO_DATE(v_date_1, 'DD/MM') > TO_DATE(v_date_2, 'DD/MM')
ne sort pas en erreur, par contre, quand je fais la même chose dans mon package, j'ai toujours cette erreur :

<ORA-01861: literal does not match format string>

Mon code dans le package est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
v_date_1          :=  TO_CHAR(date_1 , 'DD/MM');
        v_date_2   :=  TO_CHAR(date_2     , 'DD/MM');
 
        IF  TO_DATE(v_date_1, 'DD/MM') > TO_DATE(v_date_2, 'DD/MM')
        THEN
            v_last_date  :=  ADD_MONTHS(date_1, -12);
            v_next_date  :=  date_1;
        ELSE
            v_last_date  :=  date_1;
            v_next_date  :=  ADD_MONTHS(date_1, 12);
        END IF;