CSUN#90600 Er zijn heel veel onnodige gebouwen/verdiepingen/ruimten aangemaakt vanuit de daily procedure update_vastgoed. Er waren al gebouwen/verdiepingen/ruimten verwijderd die 1 dag hebben bestaan, maar er blijken ook flink wat gebouwen te zijn verwijderd, een dag nadat deze zijn aangemaakt. Om ook die te verwijderen, daarvoor is dit script. Nu ook voor records vanaf 1 september.
svn path=/Customer/; revision=70951
This commit is contained in:
79
onces/CSUN/CSUN#90600_verwijderenALG_daglater.sql
Normal file
79
onces/CSUN/CSUN#90600_verwijderenALG_daglater.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
--
|
||||
-- $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 niet dezelfde dag, maar de volgende zijn verwijderd. Dat wordt hiermee nu ook opgeschoond.
|
||||
-- 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:
|
||||
-- 66.336 gebouwen;
|
||||
-- 0 verdiepingen;
|
||||
-- 0 ruimten;
|
||||
|
||||
|
||||
DEFINE thisfile = 'CSUN#90600_verwijderenALG_daglater.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_aanmaak DATE := DATE '2025-09-01';
|
||||
v_min_verwijder DATE := DATE '2025-09-01';
|
||||
BEGIN
|
||||
|
||||
/* 1) RUIMTEN eerst */
|
||||
DELETE FROM alg_ruimte r
|
||||
WHERE TRUNC(r.alg_ruimte_aanmaak) >= v_min_aanmaak
|
||||
AND TRUNC(r.alg_ruimte_verwijder) >= v_min_verwijder
|
||||
AND TRUNC(r.alg_ruimte_verwijder) - TRUNC(r.alg_ruimte_aanmaak) = 1;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' ruimten verwijderd.');
|
||||
COMMIT;
|
||||
|
||||
/* 2) VERDIEPINGEN daarna */
|
||||
DELETE FROM alg_verdieping v
|
||||
WHERE TRUNC(v.alg_verdieping_aanmaak) >= v_min_aanmaak
|
||||
AND TRUNC(v.alg_verdieping_verwijder) >= v_min_verwijder
|
||||
AND TRUNC(v.alg_verdieping_verwijder) - TRUNC(v.alg_verdieping_aanmaak) = 1;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' verdiepingen verwijderd.');
|
||||
COMMIT;
|
||||
|
||||
/* 3) GEBOUWEN tot slot */
|
||||
DELETE FROM alg_gebouw g
|
||||
WHERE TRUNC(g.alg_gebouw_aanmaak) >= v_min_aanmaak
|
||||
AND TRUNC(g.alg_gebouw_verwijder) >= v_min_verwijder
|
||||
AND TRUNC(g.alg_gebouw_verwijder) - TRUNC(g.alg_gebouw_aanmaak) = 1;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT || ' gebouwen verwijderd.');
|
||||
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
|
||||
Reference in New Issue
Block a user