130 lines
5.5 KiB
SQL
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 |