Bonjour,
Je travaille sur oracle 11g, quand j'exécute la requête ci-dessous, avec fournisseur Mircosoft for oracle et oracle provider for ole db j'obtiens deux résultats différents :
select to_char( get_jour_ouvrable_mat( 980,to_date('31/05/2017','dd/mm/yyyy' ) ,to_date('31/05/2017','dd/mm/yyyy' )+1 ) ) vv from dual
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 get_jour_ouvrable_mat(mat number , dt_deb date, dt_reprise date) return number is v_nb number; cpt number; date_rep date; date_debut date ; ouv number ; ven_dim number ; jour_sem number; begin ouv := get_jour_ouvrable(dt_deb,dt_reprise) ; select a.type_week_end into ven_dim from tservices a where a.code = get_structure_agent(mat, sysdate) ; if ven_dim = 0 then return(ouv) ; end if ; date_debut := dt_deb ; cpt := 0 ; while date_debut < dt_reprise loop select to_char(date_debut,'D') into jour_sem from dual; if ( to_char(date_debut,'dd/mm') <> '01/01' ) and jour_sem <> 6 and jour_sem <> 7 then cpt := cpt + 1 ; end if ; date_debut := date_debut + 1 ; end loop; return(cpt) ; exception when others then return(0); end get_jour_ouvrable_mat ;
Partager