Bonjour,
J'ai une table avec les jours fériés. J'ai auddi une date de début et une date de fin.
J'ai créé le code PL/SQL suivant :
Malheureusement, ma fonction ne fonctionne pas. Si vous avez des idées, n'hésitez pas
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
22
23
24
25
26 CREATE OR REPLACE FUNCTION jours_feries(p_date1 IN DATE, p_date2 IN DATE) RETURN NUMBER IS l_count NUMBER; l_date1 DATE; l_date2 DATE; CURSOR cur IS SELECT * FROM JR_FERIE; BEGIN /* Déclaration et initialisation séparés. */ l_count := 0; l_date1 := LEAST(p_date1, p_date2); l_date2 := GREATEST(p_date1, p_date2); /* Algorithme */ WHILE (l_date1 <= l_date2) LOOP FOR enr IN cur LOOP IF to_char(l_date1, 'DD/MM/YYYY') = to_char(enr.JR_FERIE, 'DD/MM/YYYY') THEN l_count := l_count + 1; END IF; END LOOP; l_date1 := l_date1 + 1; END LOOP; /* Retourner le nombre de jours fériés entre la date de début et la date de fin d'action (les incluant) */ RETURN l_count; END jours_feries; /![]()
Partager