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
| CREATE OR REPLACE PROCEDURE PR_IMPORT_PEF_CARTE_MUT
-- -------------------------------------------------------------------------------------- --
-- Procédure d'import des étudiants depuis la BDD MariaDB pef pour la vue grhum.v_sgc_etu --
-- -------------------------------------------------------------------------------------- --
--
-- @author : Philippe Leménager
-- @version : V0.1 - plemenager - 2021-09-07 - Création
--
-- Utilise :
-- - Table enfa.etudiant_pef
-- - DB_LINK pef
-- - Vue pef.v_carte_mut sur MariaDB (serveur dev.ensfea.fr en test ou sgbdlan.ensfea.fr en prod)
-- ----------------------------------------------------------------------------------------------
IS
annee_universitaire integer;
mois_actuel integer;
BEGIN
-- Calcul de l'année universitaire
SELECT EXTRACT(MONTH FROM CURRENT_DATE) INTO mois_actuel FROM dual;
IF mois_actuel > 6 THEN
SELECT EXTRACT(YEAR FROM CURRENT_DATE) INTO annee_universitaire FROM dual;
ELSE
SELECT EXTRACT(YEAR FROM CURRENT_DATE) - 1 INTO annee_universitaire FROM dual;
END IF;
-- Récupération de la vue pef.v_carte_mut
MERGE INTO enfa.etudiant_pef e
USING
(
SELECT "id_individu", "civilite", "nom_usuel", "nom_patronymique", "prenom", "date_naissance", "ine", "date_debut_validite", "droit_photo", "droit_import",
"e_mail", "code_nationalite", "adresse1", "adresse2", "adresse3", "code_postal", "ville", "code_pays", "autre_adresse1", "autre_adresse2", "autre_adresse3",
"autre_code_postal", "autre_ville", "autre_code_pays", "telephone1", "telephone2", "niveau", "code_sise_formation", "formation", "echange_internationaux",
"sens_echange", "date_inscription", "annee_universitaire", "civilite2"
FROM "v_carte_mut"@pef
WHERE "annee_universitaire" = annee_universitaire
) i
ON (i."id_individu" = e.id_individu)
WHEN MATCHED THEN
UPDATE SET
e.civilite = i."civilite",
e.date_debut_validite = i."date_debut_validite",
e.droit_photo = i."droit_photo",
e.droit_import = i."droit_import",
e.code_nationalite = i."code_nationalite",
e.adresse1 = i."adresse1",
e.adresse2 = i."adresse2",
e.adresse3 = i."adresse3",
e.code_postal = i."code_postal",
e.ville = i."ville",
e.code_pays = i."code_pays",
e.autre_adresse1 = i."autre_adresse1",
e.autre_adresse2 = i."autre_adresse2",
e.autre_adresse3 = i."autre_adresse3",
e.autre_code_postal = i."autre_code_postal",
e.autre_ville = i."autre_ville",
e.autre_code_pays = i."autre_code_pays",
e.telephone1 = i."telephone1",
e.telephone2 = i."telephone2",
e.niveau = i."niveau",
e.code_sise_formation = i."code_sise_formation",
e.formation = i."formation",
e.echange_internationaux = i."echange_internationaux",
e.sens_echange = i."sens_echange",
e.date_inscription = i."date_inscription",
e.annee_universitaire = i."annee_universitaire",
e.civilite2 = i."civilite2"
WHEN NOT MATCHED THEN
INSERT (id_individu, civilite, nom_usuel, nom_patronymique, prenom, date_naissance, ine, date_debut_validite, droit_photo, droit_import,
e_mail, code_nationalite, adresse1, adresse2, adresse3, code_postal, ville, code_pays, autre_adresse1, autre_adresse2, autre_adresse3,
autre_code_postal, autre_ville, autre_code_pays, telephone1, telephone2, niveau, code_sise_formation, formation, echange_internationaux,
sens_echange, date_inscription, annee_universitaire, civilite2)
VALUES (i."id_individu", i."civilite", i."nom_usuel", i."nom_patronymique", i."prenom", i."date_naissance", i."ine", i."date_debut_validite", i."droit_photo", i."droit_import",
i."e_mail", i."code_nationalite", i."adresse1", i."adresse2", i."adresse3", i."code_postal", i."ville", i."code_pays", i."autre_adresse1", i."autre_adresse2", i."autre_adresse3",
i."autre_code_postal", i."autre_ville", i."autre_code_pays", i."telephone1", i."telephone2", i."niveau", i."code_sise_formation", i."formation", i."echange_internationaux",
i."sens_echange", i."date_inscription", i."annee_universitaire", i."civilite2");
END PR_IMPORT_PEF_CARTE_MUT; |
Partager