82 lines
2.3 KiB
SQL
82 lines
2.3 KiB
SQL
--
|
|
-- $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 verwijderd (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
|