Bonjour,

Novice total en PL/SQL, j'essaye de deleter le contenu d'un table avant d'y inserer de nouvelles données.
Le pb est que quand j'exécute ma procédure, je constate que Oracle SQL developpeur m'ajoute les nouvelles données aux anciennes présentes dans la table sans faire le delete au préalable

Quelqu'un pourrait m'aider SVP

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
create or replace PROCEDURE PROC_CIRCUITCADENCIER AS 
BEGIN
 
DELETE FROM CA_CIRCUIT ;
 
COMMIT ;
 
INSERT INTO CA_CIRCUIT (CODE_CIRCUIT, DATE_DEBUT,
ID_PAYS, LIB_CIRCUIT, CODE_ENS, DATE_FIN) 
 
SELECT S2.CODE_CIRCUIT, S2.DATE_APPLI, S2.ID_PAYS, 
S1.LIB_CIRCUIT, S2.CODE_ENS, S2.DATE_FIN
 
FROM (
SELECT D.CODE_CIRCUIT, MAX(D.DATE_APPLI) DATE_APPLI, B.ID_PAYS ,
C.CODE_ENS, A.DATE_FIN 
FROM CL_CIRCUIT A, CL_CIRCUIT_PAYS B, CL_CIRCUIT_ENSEIGNE C, 
CL_CIRCUIT_INFO D
WHERE 
D.ID_TYPE_CIRCUIT = '1'
AND A.CODE_CIRCUIT = B.CODE_CIRCUIT
AND B.CODE_CIRCUIT = C.CODE_CIRCUIT
AND C.CODE_CIRCUIT = D.CODE_CIRCUIT
AND C.CODE_ENS IN ('IM', 'DM', 'BT', 'BM')
AND D.DATE_APPLI < (select trunc(sysdate) from dual)
GROUP BY D.CODE_CIRCUIT,  B.ID_PAYS ,
C.CODE_ENS, A.DATE_FIN)  S2, CL_CIRCUIT_INFO S1
 
WHERE S2.CODE_CIRCUIT=S1.CODE_CIRCUIT
AND S2.DATE_APPLI=S1.DATE_APPLI ;
 
 
COMMIT ;