Files
Database/_UP/DB44cto44d.sql
2023-03-23 12:13:40 +00:00

68 lines
2.3 KiB
SQL

--
-- $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.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#73722
-- 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);
------ 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