-- -- $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