Files
Customer/onces/CSUN/CSUN#90600_verwijderenALG_samedaydelete_15-09-2025.sql

76 lines
2.9 KiB
SQL

--
-- $Id$
--
-- Korte beschrijving wat het script doet
-- Onnodige gebouwen/verdiepingen/ruimten die steeds maar 1 dag hebben bestaan mogen helemaal verwijderd worden uit de database, daar staat niets aan gekoppeld.
-- In een vorig (vergelijkbaar script) werden al zaken verwijderd die 1 dag na aanmaak waren verwijderd.
-- Maar er zijn ook gebouwen/verdiepingen/ruimten die nog sneller zijn aangemaakt en verwijderd (soms wel binnen 2 minuten)
-- Daarvoor zal er een once script gemaakt worden, dit zorgt nu voor een onnodige performance-belasting.
-- Een eerder (en vergelijkbaar script) had al eens gedraaid met records vanaf vanaf 16 september met gebouwen/verdiepingen/ruimten die zijn aangemaakt en direct dezelfde dag ook zijn verwijderd:
-- Over het hoofd gezien was dat op 15 september ook nog veel overbodige records waren geregistreerd:
-- 11.101 gebouwen;
-- 35.031 verdiepingen;
-- 35.063 ruimten;
DEFINE thisfile = 'CSUN#90600_verwijderenALG_samedaydelete_15-09-2025.SQL'
DEFINE dbuser = '^CSUN'
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_min_date DATE := TO_DATE('15-09-2025','DD-MM-YYYY');
BEGIN
/* 1) RUIMTES eerst */
DELETE FROM alg_ruimte r
WHERE TRUNC(r.alg_ruimte_aanmaak) = TRUNC(r.alg_ruimte_verwijder)
-- AND r.alg_ruimte_key NOT IN (
-- SELECT alg_ruimte_key
-- FROM prs_v_perslidwerkplek_gegevens)
AND r.alg_ruimte_aanmaak >= v_min_date;
COMMIT;
/* 2) VERDIEPINGEN daarna (alleen als er geen ruimtes meer onder hangen) */
DELETE FROM alg_verdieping v
WHERE TRUNC(v.alg_verdieping_aanmaak) = TRUNC(v.alg_verdieping_verwijder)
-- AND v.alg_verdieping_key NOT IN (
-- SELECT alg_verdieping_key
-- FROM prs_v_perslidwerkplek_gegevens)
AND v.alg_verdieping_aanmaak >= v_min_date;
COMMIT;
/* 3) GEBOUWEN tot slot (alleen als er geen verdiepingen meer onder hangen) */
DELETE FROM alg_gebouw g
WHERE TRUNC(g.alg_gebouw_aanmaak) = TRUNC(g.alg_gebouw_verwijder)
-- AND g.alg_gebouw_key NOT IN (
-- SELECT alg_gebouw_key
-- FROM prs_v_perslidwerkplek_gegevens)
AND g.alg_gebouw_aanmaak >= v_min_date;
COMMIT;
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