FMHN#76317 Once/Verwijderen uit beeld geraakte BZK-personen (op niveau 6)

svn path=/Customer/; revision=59097
This commit is contained in:
Maarten van der Heide
2023-02-10 11:30:04 +00:00
parent 1af1dd7eb2
commit afa5b8521c

81
onces/FMHN/FMHN#76317.sql Normal file
View File

@@ -0,0 +1,81 @@
--
-- $Id$
--
-- Customer specific once-script FMHN#76317.sql.
DEFINE thisfile = 'FMHN#76317.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 ------
-- FMHN#76317: Logisch verwijderen alle uit beeld geraakte BZK-personen in de
-- Facilitor-afdelingboom (op niveau 6) met voorkennis dat er geen
-- geen lopende verplichtingen meer zijn.
SET SERVEROUTPUT ON size 1000000;
DECLARE
CURSOR c
IS
SELECT p.prs_perslid_key
FROM prs_afdeling a, prs_perslid p
WHERE a.prs_afdeling_verwijder IS NULL
AND SUBSTR (a.prs_afdeling_externid, 1, 2) = '04'
AND EXISTS (SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key5 = a.prs_afdeling_parentkey)
AND a.prs_afdeling_key = p.prs_afdeling_key
ORDER BY 1;
v_count_del NUMBER := 0;
BEGIN
FOR rec IN c
LOOP
BEGIN
-- Niet van toepassing voor de 254 te verwijderen BZK-personen.
v_errormsg := 'Fout schonen collega';
DELETE FROM prs_collega
WHERE prs_perslid_key = rec.prs_perslid_key
OR prs_perslid_key_alt = rec.prs_perslid_key;
v_errormsg := 'Fout schonen perslid';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
v_count_del := v_count_del + 1;
-- Niet van toepassing voor de te 254 verwijderen BZK-personen.
IF MOD (v_count_del, 1000) = 0
THEN
COMMIT;
END IF;
END;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count_del) || ' BZK-personen verwijder (op niveau 6)');
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile