Bonjour à tous ,

j'essaye de compiler la procédure ci-dessous sous oracle 10 et j'ai l'erreur suivante :
" PLS-00103: Symbole "LOOP" rencontré à la place d'un des symboles
suivants : if "
que je n'arrive pas à corriger cette erreur, quelqu'un parmi vous peux t- il m'aider .
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
CREATE OR REPLACE PROCEDURE TEMPS_ChargeTableTemps IS
TEMPS_DATE     DATE ;
TEMPS_FIN      DATE ;
TEMPS_ID        NUMBER(2) ;
TEMPS_JOUROUVRE     varchar(1) ;
TEMPS_JOURDESEMAINE NUMBER(2) ;
TEMPS_TRIMESTRE    NUMBER(1);
TEMPS_ANNEE         varchar(4);
TEMPS_MOIS         NUMBER(2);
TEMPS_JOUR       NUMBER(2) ;
TEMPS_FERIE         varchar(20);
 
-- Début du Chargement
 
BEGIN
 
-- Initialisation du premier Jour de la semaine (1=Lundi)
 
 DATEFIRST :=1 ;
 
-- Initialisation du format de la date (Année MOis Jour)
 
 DATEFORMAT :='dmy';
 
-- Initialisation des Variables (Premiere valeur de l'ID, Date de début et date de fin)
 
TEMPS_DATE := '01/01/2000';
TEMPS_FIN := '31/12/2010';
TEMPS_ID := 1000 ;
 
 WHILE TEMPS_DATE < TEMPS_FIN    LOOP
 
-- Creation et Chargement des variables
 
TEMPS_ANNEE := to_char(TEMPS_DATE,'yyyy')  ;
TEMPS_MOIS  := to_char(TEMPS_DATE,'m') ;
TEMPS_JOUR  := to_char(TEMPS_DATE,'dd') ;
TEMPS_JOURDESEMAINE := to_char(TEMPS_DATE,'D');
TEMPS_JOURANNEE := to_char(TEMPS_DATE,'DDD');
 
-- Chargement du Week-End
 
  IF TEMPS_JOURDESEMAINE IN (6,7) THEN
     TEMPS_JOUROUVRE := 'N ';
  ELSE
     TEMPS_JOUROUVRE := 'O' ;
  END IF ;
 
-- Chargement du Trimestre
 
IF to_char(TEMPS_DATE,'m')  IN (6,7,8) THEN
TEMPS_TRIMESTRE := 1 ;
ELSE IF to_char(TEMPS_DATE,'m') IN (9,10,11) THEN
TEMPS_TRIMESTRE := 2 ;
ELSE IF to_char(TEMPS_DATE,'m') IN (12,1,2) THEN
TEMPS_TRIMESTRE := 3 ;
ELSE IF to_char(TEMPS_DATE,'m') IN (3,4,5) THEN
TEMPS_TRIMESTRE := 4  ;
END IF ;
 
 
-- CHARGEMENT DES JOURS FERIES GENERIQUES 
 
   IF TEMPS_MOIS  = 1 AND TEMPS_JOUR = 1 THEN
      TEMPS_FERIE := 'Jour de An';
   ELSE IF TEMPS_MOIS = 5 AND TEMPS_JOUR = 1 THEN
      TEMPS_FERIE := 'Fête du Travail';
   ELSE IF TEMPS_MOIS = 5 AND TEMPS_JOUR = 8 THEN
      TEMPS_FERIE := 'Victoire 1945';
   ELSE IF TEMPS_MOIS = 7 AND TEMPS_JOUR = 14 THEN
      TEMPS_FERIE := 'Fête Nationale';
   ELSE IF TEMPS_MOIS = 8 AND TEMPS_JOUR = 15 THEN
      TEMPS_FERIE := 'Assomption';
   ELSE IF TEMPS_MOIS = 11 AND TEMPS_JOUR = 1 THEN 
      TEMPS_FERIE := 'Toussaint';
   ELSE IF TEMPS_MOIS = 11 AND TEMPS_JOUR = 11 THEN
      TEMPS_FERIE := 'Armistice 1918';
   ELSE IF TEMPS_MOIS = 12 AND TEMPS_JOUR = 25 THEN
      TEMPS_FERIE := 'Noël';
 
   -- CHARGEMENT DES JOURS FERIES PARTICULIERS AUX ANNEES - DATES SPECIFIQUES
 
   -- ANNEE 2000
 
  ELSE IF TEMPS_DATE = '21/04/2000' THEN
      TEMPS_FERIE := 'Lundi de Paques';
   ELSE IF TEMPS_DATE = '01/06/2000' THEN
      TEMPS_FERIE := 'Ascension';
   ELSE IF TEMPS_DATE = '06/06/2000' THEN
   TEMPS_FERIE := 'Lundi de Pentecôte';
 
   -- ANNEE 2001
 
   ELSE IF TEMPS_DATE = '16/04/2001' THEN
      TEMPS_FERIE := 'Lundi de Paques' ;
   ELSE IF TEMPS_DATE = '24/05/2001' THEN
      TEMPS_FERIE := 'Ascension';
   ELSE IF TEMPS_DATE = '04/06/2001' THEN
      TEMPS_FERIE := 'Lundi de Pentecôte';
 
   -- ANNEE 2002
   ELSE IF TEMPS_DATE = '01/04/2002' THEN
      TEMPS_FERIE := 'Lundi de Paques';
   ELSE IF TEMPS_DATE = '09/05/2002' THEN
      TEMPS_FERIE := 'Ascension';
   ELSE IF TEMPS_DATE = '20/05/2002' THEN
      TEMPS_FERIE := 'Lundi de Pentecôte';
 
   -- ANNEE 2003
 
   ELSE IF TEMPS_DATE = '21/04/2003' THEN
      TEMPS_FERIE := 'Lundi de Paques';
   ELSE IF TEMPS_DATE = '29/05/2003' THEN
      TEMPS_FERIE := 'Ascension';
   ELSE IF TEMPS_DATE = '06/06/2003' THEN
      TEMPS_FERIE := 'Lundi de Pentecôte';
 
 
-- ANNEE 2009 
 
   ELSE IF TEMPS_DATE = '13/04/2009' THEN 
      TEMPS_FERIE := 'Lundi de Paques';
   ELSE IF TEMPS_DATE = '21/05/2009' THEN 
       TEMPS_FERIE := 'Ascension';
 
   -- ANNEE 2010
   ELSE IF TEMPS_DATE = '05/04/2010' THEN 
      TEMPS_FERIE := 'Lundi de Paques';
   ELSE IF TEMPS_DATE = '13/05/2010' THEN 
      TEMPS_FERIE := 'Ascension';
   ELSE
      TEMPS_FERIE := NULL ;
  END IF;
 
   -- Ajout des Valeurs dans la Table
 
   INSERT  into  TEMPS values 
   (TEMPS_ID,TEMPS_DATE,
      TEMPS_ANNEE,
      TEMPS_MOIS,
      TEMPS_JOUR,
      TEMPS_JOURDESEMAINE,
      TEMPS_JOURANNEE ,
      TEMPS_JOUROUVRE,
      TEMPS_TRIMESTRE,
      TEMPS_FERIE) ;
 
   TEMPS_DATE := TEMPS_DATE + 1;
   TEMPS_ID := TEMPS_ID + 1;
  END LOOP;
 
commit;
 END ;
/