diff --git a/onces/NOUR/NOUR#84364_1.sql b/onces/NOUR/NOUR#84364_1.sql new file mode 100644 index 000000000..179dca531 --- /dev/null +++ b/onces/NOUR/NOUR#84364_1.sql @@ -0,0 +1,98 @@ +-- +-- $Id$ +-- +-- NOUR#84364 Periodieke taken geeft Aiai +-- Opschonen poorten +-- +DEFINE thisfile = 'NOUR#84364_1.SQL' +DEFINE dbuser = '^NOUR' + +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 ------ + +-- opruimen poorten +-- Alle kenmerken bij deze objecten verwijderen +DELETE ins_kenmerkdeel kd + WHERE kd.ins_kenmerkdeel_key IN + (SELECT kd.ins_kenmerkdeel_key + FROM ins_kenmerkdeel kd, ins_deel d, ins_srtdeel sd + WHERE kd.ins_deel_key = d.ins_deel_key + AND d.ins_srtdeel_key = sd.ins_srtdeel_key + AND sd.ins_srtdeel_key = 648); + +-- Tracking verwijderen van deze objecten +DELETE fac_tracking tr + WHERE tr.fac_tracking_key IN + (SELECT t.fac_tracking_key + FROM fac_tracking t, ins_deel d + WHERE t.fac_tracking_refkey = d.ins_deel_key AND d.ins_srtdeel_key = 648); + +-- Meldingen met een relatie naar het object +DELETE mld_melding_object m + WHERE m.mld_melding_object_key IN + (SELECT mo.mld_melding_object_key + FROM mld_melding_object mo, ins_deel d + WHERE mo.ins_deel_key = d.ins_deel_key AND d.ins_srtdeel_key = 648); + +-- Het object is een child van een ander object, deze verwijderen we eerst +DELETE ins_deel dc + WHERE dc.ins_srtdeel_key = 648 + AND dc.ins_deel_parent_key IN (SELECT dp.ins_deel_key + FROM ins_deel dp + WHERE dp.ins_srtdeel_key =648); + +-- Het object is een parent van een ander object, deze relatie wordt verwijderd +UPDATE ins_deel dc + SET dc.ins_deel_parent_key = NULL + WHERE dc.ins_deel_parent_key IN (SELECT dp.ins_deel_key + FROM ins_deel dp + WHERE dp.ins_srtdeel_key = 648 ); + +-- geen uitgifte +-- geen ins deel koppelingen voor deze objectsoorten +-- geen periodieke taken op deze objecten +-- geen notities bij deze objecten + +-- Objecten zelf verwijderen +DELETE ins_deel d + WHERE d.ins_srtdeel_key = 648; + +-- We gaan ook alle objecten verwijderen van locaties die niet meer actief zijn binnen Nouryon +DELETE ins_deel d + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND d.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +------ 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 \ No newline at end of file diff --git a/onces/NOUR/NOUR#84364_2.sql b/onces/NOUR/NOUR#84364_2.sql new file mode 100644 index 000000000..05205b99a --- /dev/null +++ b/onces/NOUR/NOUR#84364_2.sql @@ -0,0 +1,146 @@ +-- +-- $Id$ +-- +-- NOUR#84364 Periodieke taken geeft Aiai +-- Opschonen objecten van vervallen locaties +-- +DEFINE thisfile = 'NOUR#84364_2.SQL' +DEFINE dbuser = '^NOUR' + +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 ------ + +-- opruimen poorten +-- Alle kenmerken bij deze objecten verwijderen +DELETE ins_kenmerkdeel kd + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND kd.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Tracking verwijderen van deze objecten +DELETE fac_tracking tr + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND tr.fac_tracking_refkey = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Meldingen met een relatie naar het object +DELETE mld_melding_object m + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND m.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Het object is een child van een ander object, deze verwijderen we eerst +DELETE ins_deel dc + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND dc.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL) + AND EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND dc.ins_deel_parent_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Het object is een parent van een ander object, deze relatie wordt verwijderd +UPDATE ins_deel dc + SET dc.ins_deel_parent_key = NULL + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND dc.ins_deel_parent_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Het object is uitgegeven, deze uitgifte verwijderen we +DELETE ins_deel_uitgifte u + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND u.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- Periodieke taken op deze objecten verwijderen +DELETE ins_deelsrtcontrole sk + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND sk.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- er zijn reserveringen op deze objecten die we moeten verwijderen +DELETE res_rsv_deel rsv + WHERE rsv.res_deel_key IN + (SELECT rd.res_deel_key + FROM res_deel rd + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND rd.res_ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL)); + +-- daarna kunnen we het reserveerbare object verwijderen +DELETE res_deel rd + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND rd.res_ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +-- geen notities bij deze objecten +-- geen ins deel koppelingen voor deze objectsoorten + +-- Objecten zelf verwijderen +DELETE ins_deel d + WHERE EXISTS + (SELECT i.ins_deel_key + FROM ins_deel i, alg_locatie l + WHERE i.ins_alg_locatie_key = l.alg_locatie_key + AND d.ins_deel_key = i.ins_deel_key + AND alg_locatie_verwijder IS NOT NULL); + +------ 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 \ No newline at end of file