Files
Customer/onces/FMHN/FMHN#71214_2.sql
2022-03-01 11:52:15 +00:00

130 lines
5.5 KiB
SQL

/* Formatted on 28/2/2022 15:06:21 (QP5 v5.371) */
--
-- $Id$
--
-- De IDM broker heeft onbedoeld personen dubbel aangeleverd.
-- Enkele (vooral gemigreerde) meldingen/bezoekers/afspraken zijn op een reeds verwijderde persoon gemigreerd (obv emailadres).
-- Die personen komen met dat emailadres vaker voor (soms wel 8 maal) het is dus heel lastig en veel werk om dit via de interface te doen.
-- Deze personen worden even opengesteld (met INACTIEF) in de naam, zodat FAB van FMH daarna de verplichtingen omzet en deze persoon alsnog verwijderd (via de GUI).
DEFINE thisfile = 'FMHN#71214_2.sql'
DEFINE dbuser = '^FMHN'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile ('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust ('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
DECLARE
v_perslid_key NUMBER (15);
CURSOR c IS
SELECT x.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_email,
p.prs_perslid_verwijder
FROM (SELECT r.res_rsv_ruimte_contact_key AS prs_perslid_key
FROM res_rsv_ruimte r
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key =
r.res_rsv_ruimte_contact_key))
UNION ALL
SELECT r.res_rsv_ruimte_host_key AS prs_perslid_key
FROM res_rsv_ruimte r
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key =
r.res_rsv_ruimte_host_key))
UNION ALL
SELECT m.prs_perslid_key AS prs_perslid_key
FROM mld_melding m
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key = m.prs_perslid_key))
UNION ALL
SELECT m.prs_perslid_key_voor AS prs_perslid_key
FROM mld_melding m
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key =
m.prs_perslid_key_voor))
UNION ALL
SELECT b.bez_afspraak_host_key AS prs_perslid_key
FROM bez_afspraak b
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key =
b.bez_afspraak_host_key))
UNION ALL
SELECT b.prs_perslid_key AS prs_perslid_key
FROM bez_afspraak b
WHERE EXISTS
(SELECT p.prs_perslid_key
FROM prs_perslid p
WHERE TRUNC (p.prs_perslid_verwijder) =
TRUNC (SYSDATE) - 6 -- WOENSDAG 23 februari 2022
AND (p.prs_perslid_key = b.prs_perslid_key)))
x,
prs_perslid p
WHERE p.prs_perslid_key = x.prs_perslid_key
GROUP BY x.prs_perslid_key,
p.prs_perslid_naam,
p.prs_perslid_email,
p.prs_perslid_verwijder;
BEGIN
FOR rec IN c
LOOP
BEGIN
UPDATE prs_perslid p
SET p.prs_perslid_verwijder = NULL
WHERE p.prs_perslid_key = rec.prs_perslid_key;
UPDATE prs_perslid p
SET p.prs_perslid_email = NULL
WHERE p.prs_perslid_key = rec.prs_perslid_key;
UPDATE prs_perslid p
SET p.prs_perslid_naam =
SUBSTR ('INACTIEF: ' || rec.prs_perslid_naam, 0, 60)
WHERE p.prs_perslid_key = rec.prs_perslid_key;
END;
END LOOP;
END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile