76 lines
2.9 KiB
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
|