FMHN#76317 Once/Verwijderen uit beeld geraakte BZK-personen (op niveau 6)
svn path=/Customer/; revision=59097
This commit is contained in:
81
onces/FMHN/FMHN#76317.sql
Normal file
81
onces/FMHN/FMHN#76317.sql
Normal 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
|
||||
Reference in New Issue
Block a user