FMHN#71214 Tweede script: Verwijderde personen met verplichtingen weer openstellen.
svn path=/Customer/; revision=55148
This commit is contained in:
130
onces/FMHN/FMHN#71214_2.sql
Normal file
130
onces/FMHN/FMHN#71214_2.sql
Normal file
@@ -0,0 +1,130 @@
|
||||
/* 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) - 5
|
||||
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) - 5
|
||||
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) - 5
|
||||
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) - 5
|
||||
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) - 5
|
||||
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) - 5
|
||||
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
|
||||
Reference in New Issue
Block a user