| 12
 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 ; | 
Partager