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