Bonjour,
Je ne parviens pas à trouver de solutions pour pouvoir effectuer cette requête:
(le problème étant que l'on de peut pas exécuter de requêtes dans un if)
Le problème étant:
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
27
28
29
30
31
32
33
34
35
36 Declare pDate date; pOpenDays number; Begin pDate := sysdate; pOpenDays := 5; While pOpenDays > 1 Loop Begin If (to_char(pDate+1,'DAY','NLS_DATE_LANGUAGE=FRENCH') like 'SAMEDI%') or (to_char(pDate+1,'DAY','NLS_DATE_LANGUAGE=FRENCH') like 'DIMANCHE%') or trunc(pDate+1,'DAY') in ( select scp.SCP_DATE from pac_schedule_period scp , pac_schedule sch where scp.pac_schedule_id=sch.pac_schedule_id and sch.sce_default=1 and scp.scp_nonworking_day=1 and scp.scp_date is not Null) Then pDate := pDate + 1; Else pDate := pDate + 1; pOpenDays := pOpenDays - 1; End if; End; End loop; dbms_output.put_line(to_char(pDate,'DD/MM/YYYY')); End;
J'ai vu plusieurs solutions dont l'utilisation d'une autre boucle for qui est l'équivalent de in, ou de fetch mais je n'ai pas du tout compris comment cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 or trunc(pDate+1,'DAY') in ( select scp.SCP_DATE from pac_schedule_period scp , pac_schedule sch where scp.pac_schedule_id=sch.pac_schedule_id and sch.sce_default=1 and scp.scp_nonworking_day=1 and scp.scp_date is not Null)
Auriez vous d'autres idées?
Merci
Bonne journée
Partager