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
| /* --------------------------------------------------------------------- */
/* Programme de mise à jour du calendrier de routage oracle */
/* des enquetes conjoncture */
/* --------------------------------------------------------------------- */
/* Parametres en entree : */
/* an = annee du calendrier */
/* nivugst = NAT ou REG */
/* reptab = repertoire ou est stocke le calendrier (fichier excel)*/
/* nomtab = nom du fichier excel contenant le calendrier */
/* user = utilisateur pour la connexion oracle */
/* pass = mot de passe oracle du user */
/* path = nom logique de la base oracle */
/* schema = schema oracle pour la connexion */
/* --------------------------------------------------------------------- */
/* En entree : */
/* Tableau excel &retab\&nomtab contenant le calendrier de routage */
/* de l'annee aaaa */
/* Les variables sont : */
/* codenq = code d'enquete sur 4 caracteres */
/* datenq = date de l'enquete */
/* nivugst = NAT ou REG */
/* ugst = unite de gestion */
/* quest = numero du questionnaire */
/* date_rou = date de routage pour 1er envoi */
/* dateqrou = date d'envoi notee sur le questionnaire */
/* dateprou = date limite de depot à la poste du 1er envoi */
/* date_rap = date de routage pour rappel */
/* dateqrap = date de rappel notee sur le questionnaire */
/* dateprap = date limite de depot à la poste du rappel */
/* msgpap = message devant figurer sur le questionnaire papier */
/* msgint = message devant figurer sur le site internet */
/* En sortie : */
/* Le calendrier de routage oracle est mis à jour (table CALROU) */
/* --------------------------------------------------------------------- */
%macro MAJCALROU (reptab=N:\outils\calendrier de routage,
nomtab=,
user=CONJPK99,
pass=KOPD99,
path=CNIOTCO8.INSEE.FR,
schema=CONJV200) ;
/* --------------------------------------------------------------------- */
/* Formule utile pour comparer les dates en ne tenant compte que */
/* du mois et de l'annee */
/* --------------------------------------------------------------------- */
%macro cmp_mmyy (d1, test, d2) ;
putn (&d1, 'yymmn6.') &test putn (&d2, 'yymmn6.')
%mend cmp_mmyy ;
/* on importe le calendrier excel */
proc import datafile = "&reptab\&nomtab"
out=calrou
dbms = EXCEL2000 replace ;
getnames = YES ;
run;
/* allocation de la librairie Oracle */
/* les tables Oracle seront alors traitees comme des tables SAS */
libname libora oracle
user="&user" pass="&pass" path="&path" schema="&schema" ;
proc sql;
/* destruction des lignes déjà existantes dans calrou */
delete from libora.calrou as calora
where exists (select *
from calrou as calxls
where calxls.datenq=calora.datenq
and calxls.nivugst=calora.nivugst
and calxls.ugst=calora.ugst
and calxls.codenq=calora.codenq);
/* insertion des variables principales */
insert into libora.calrou
(datenq, codenq, ugst, nivugst,
date_rou, dateqrou, dateprou, filt_rou, date_ret, nenr_nouv,
date_rap, dateqrap, dateprap, filt_rap,
/*date_rau, dateqrau, dateprau, filt_rau, date_rat, nenr_rau,*/
date_med, dateqmed, datepmed, filt_med, nenr_med,
date_cnr, dateqcnr, datepcnr, filt_cnr, nenr_cnr,
dati_ouv, dati_ret, dati_rap, dati_rau, dati_clo, dati_exp, filt_net,
datextrp, datextrd,
msg_pap)
select datenq, codenq, ugst, nivugst,
date_rou, dateqrou, dateprou, filt_rou, date_ret, nenr_nouv,
date_rap, dateqrap, dateprap, filt_rap,
/*date_rau, dateqrau, dateprau, filt_rau, date_rat, nenr_rau,*/
date_med, dateqmed, datepmed, filt_med, nenr_med,
date_cnr, dateqcnr, datepcnr, filt_cnr, nenr_cnr,
dati_ouv, dati_ret, dati_rap, dati_rau, dati_clo, dati_exp, filt_net,
datextrp, datextrd,
msg_pap
from calrou
where codenq ne 'NULL';
quit;
libname libora clear;
%mend MAJCALROU;
options mprint nosymbolgen nomlogic;
/* mise a jour base de test */
%majcalrou(reptab=I:\conjv204\Outils\Calendrier de routage,
nomtab=calrou_NAT2009,
user=CONJV200,
pass=KOPD,
path=TC10,
schema=CONJV200);
/*%majcalrou(reptab=N:\outils\calendrier de routage,
nomtab=calrouREG2007,
user=CONJV200,
pass=KOPD,
path=CNIOTCO8.INSEE.FR,
schema=CONJV200);*/
/* mise a jour base de prod */
/*%majcalrou(reptab=I:\conjv204\outils\calendrier de routage,
nomtab=calrouNAT2008,
user=CONJV200,
pass=KOPD,
path=PCNJ.INSEE.FR,
schema=CONJV200);
/*%majcalrou(reptab=N:\outils\calendrier de routage,
nomtab=calrouREG2007,
user=CONJV200,
pass=KOPD,
path=PCNJ,
schema=CONJV200);*/ |
Partager