FCLT#77314 Trigger verwijderen -> update doorvoeren -> trigger weer toevoegen
svn path=/Database/branches/DB44/; revision=59812
This commit is contained in:
@@ -439,7 +439,10 @@ DELETE FROM fac_groeprechten
|
||||
AND f.fac_functie_code = 'WEB_ORDOAP'
|
||||
);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#73722
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#77314
|
||||
|
||||
// Drop trigger om res_rsv_ruimte-records aan te kunnen passen in bo_status = 6
|
||||
DROP TRIGGER res_t_res_rsv_ruimte_B_IU;
|
||||
|
||||
// Strip de timestamp (ook maar voor verwijderde records)
|
||||
UPDATE res_rsv_ruimte
|
||||
@@ -471,6 +474,20 @@ CREATE UNIQUE INDEX res_i_res_rsv_ruimte18
|
||||
NULL
|
||||
END);
|
||||
|
||||
// En voeg trigger weer toe
|
||||
CREATE OR REPLACE TRIGGER res_t_res_rsv_ruimte_B_IU
|
||||
BEFORE INSERT OR UPDATE ON res_rsv_ruimte
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF :old.res_status_bo_key=6 THEN raise_application_error(-20001, 'Reserveringsgegevens '||:new.res_rsv_ruimte_key||'/'||:new.res_rsv_ruimte_volgnr||' zijn verwerkt; wijzigen is niet meer toegestaan.'); END IF;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL OR (:new.res_rsv_ruimte_verwijder IS NULL AND :old.res_rsv_ruimte_verwijder IS NOT NULL) THEN UPDATE res_rsv_artikel SET res_rsv_artikel_verwijder = :new.res_rsv_ruimte_verwijder WHERE res_rsv_artikel.res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND res_rsv_artikel.res_rsv_artikel_verwijder IS NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL OR (:new.res_rsv_ruimte_verwijder IS NULL AND :old.res_rsv_ruimte_verwijder IS NOT NULL) THEN UPDATE res_rsv_deel SET res_rsv_deel_verwijder = :new.res_rsv_ruimte_verwijder WHERE res_rsv_deel.res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND res_rsv_deel.res_rsv_deel_verwijder IS NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL THEN DELETE FROM bez_afspraak WHERE bez_afspraak.res_rsv_ruimte_key = :new.res_rsv_ruimte_key; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_host_key <> :old.res_rsv_ruimte_host_key THEN UPDATE bez_afspraak set bez_afspraak_host_key = :new.res_rsv_ruimte_host_key WHERE res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND bez_afspraak_host_key IS NOT NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_contact_key <> :old.res_rsv_ruimte_contact_key THEN UPDATE bez_afspraak set bez_afspraak_contact_key= :new.res_rsv_ruimte_contact_key WHERE res_rsv_ruimte_key =:new.res_rsv_ruimte_key; END IF; END;
|
||||
END;
|
||||
/
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
|
||||
|
||||
REGISTERONCE('$Id$')
|
||||
|
||||
85
_UP/DB44cto44d_3.sql
Normal file
85
_UP/DB44cto44d_3.sql
Normal file
@@ -0,0 +1,85 @@
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- Aanpassingen om DB44c (prod) naar de DB44d te brengen
|
||||
-- Merk op dat de recreate er nog bij komt die de DB-version bijwerkt
|
||||
--
|
||||
-- MOET OOK ZIJN/WORDEN OPGENOMEN IN DB43TO44d.src !!!
|
||||
|
||||
DEFINE thisfile = 'DB44cto44d_3.sql'
|
||||
DEFINE dbuser = '*'
|
||||
|
||||
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 ------
|
||||
-- /////////////////////////////////////////////////////////////////////////////////////////// FCLT#77314
|
||||
|
||||
-- Drop trigger om res_rsv_ruimte-records aan te kunnen passen in bo_status = 6
|
||||
DROP TRIGGER res_t_res_rsv_ruimte_B_IU;
|
||||
|
||||
-- Strip de timestamp (ook maar voor verwijderde records)
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_externnr =
|
||||
SUBSTR (res_rsv_ruimte_externnr, 1, LENGTH (res_rsv_ruimte_externnr) - 14)
|
||||
WHERE res_rsv_ruimte_externnr IS NOT NULL
|
||||
AND res_rsv_ruimte_externnr NOT LIKE '##iCalUId##%'
|
||||
AND REGEXP_LIKE (res_rsv_ruimte_externnr, '\|\d{13}$');
|
||||
|
||||
-- Verwijder de dubbelen op een nette manier die niet de Outlook koppeling aftrapt
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_externnr = NULL
|
||||
, res_rsv_ruimte_verwijder = SYSDATE
|
||||
WHERE res_rsv_ruimte_externnr IS NOT NULL
|
||||
AND res_rsv_ruimte_verwijder IS NULL
|
||||
AND res_rsv_ruimte_key NOT IN ( SELECT MIN (res_rsv_ruimte_key)
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_rsv_ruimte_externnr IS NOT NULL
|
||||
AND res_rsv_ruimte_verwijder IS NULL
|
||||
GROUP BY res_rsv_ruimte_externnr);
|
||||
|
||||
-- Voeg de nieuwe unieke index toe
|
||||
CREATE UNIQUE INDEX res_i_res_rsv_ruimte18
|
||||
ON res_rsv_ruimte (CASE
|
||||
WHEN res_rsv_ruimte_verwijder IS NULL
|
||||
THEN
|
||||
res_rsv_ruimte_externnr
|
||||
ELSE
|
||||
NULL
|
||||
END);
|
||||
|
||||
-- En voeg trigger weer toe
|
||||
CREATE OR REPLACE TRIGGER res_t_res_rsv_ruimte_B_IU
|
||||
BEFORE INSERT OR UPDATE ON res_rsv_ruimte
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF :old.res_status_bo_key=6 THEN raise_application_error(-20001, 'Reserveringsgegevens '||:new.res_rsv_ruimte_key||'/'||:new.res_rsv_ruimte_volgnr||' zijn verwerkt; wijzigen is niet meer toegestaan.'); END IF;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL OR (:new.res_rsv_ruimte_verwijder IS NULL AND :old.res_rsv_ruimte_verwijder IS NOT NULL) THEN UPDATE res_rsv_artikel SET res_rsv_artikel_verwijder = :new.res_rsv_ruimte_verwijder WHERE res_rsv_artikel.res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND res_rsv_artikel.res_rsv_artikel_verwijder IS NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL OR (:new.res_rsv_ruimte_verwijder IS NULL AND :old.res_rsv_ruimte_verwijder IS NOT NULL) THEN UPDATE res_rsv_deel SET res_rsv_deel_verwijder = :new.res_rsv_ruimte_verwijder WHERE res_rsv_deel.res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND res_rsv_deel.res_rsv_deel_verwijder IS NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_verwijder IS NOT NULL THEN DELETE FROM bez_afspraak WHERE bez_afspraak.res_rsv_ruimte_key = :new.res_rsv_ruimte_key; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_host_key <> :old.res_rsv_ruimte_host_key THEN UPDATE bez_afspraak set bez_afspraak_host_key = :new.res_rsv_ruimte_host_key WHERE res_rsv_ruimte_key = :new.res_rsv_ruimte_key AND bez_afspraak_host_key IS NOT NULL; END IF; END;
|
||||
BEGIN IF :new.res_rsv_ruimte_contact_key <> :old.res_rsv_ruimte_contact_key THEN UPDATE bez_afspraak set bez_afspraak_contact_key= :new.res_rsv_ruimte_contact_key WHERE res_rsv_ruimte_key =:new.res_rsv_ruimte_key; END IF; END;
|
||||
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