Bonjour à tous.
Je suis un peu confus, je voudrais savoir si Oracle mettra en cache la valeur de minDate ou si il le recalcule à chaque fois qu'on appelle cette variable.
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 CREATE OR REPLACE PROCEDURE ARCHIVAGE IS CURSOR c_ldt(dt IN DATE) IS SELECT id_ligne FROM table1 WHERE date_debut <= dt FOR UPDATE; minDate DATE; BEGIN SELECT MIN(date_debut) INTO minDate FROM table1; minDate := last_day(minDate); FOR cLdt IN c_ldt(minDate) LOOP BEGIN INSERT INTO table2 SELECT * FROM table1 WHERE id_ligne = cLdt.id_ligne; DELETE FROM table1 WHERE CURRENT OF c_ldt; COMMIT; END LOOP; END;
Merci d'avance pour vos réponses.
Partager