99 lines
4.2 KiB
SQL
99 lines
4.2 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Customer specific once-script KLIM#61411.SQL.
|
|
DEFINE thisfile = 'KLIM#61411.SQL'
|
|
DEFINE dbuser = '^KLIM'
|
|
|
|
SET ECHO ON
|
|
SET DEFINE ON
|
|
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
|
WHENEVER SQLERROR EXIT;
|
|
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
|
WHENEVER SQLERROR CONTINUE;
|
|
SPOOL &fcltlogfile
|
|
SET DEFINE OFF
|
|
|
|
------ payload begin ------
|
|
|
|
-- Verwijder vulling van Werkplek-kenmerkveld (key=97) voor ICT-objecten met een
|
|
-- '/' in identificatie!
|
|
-- NB. Hard verwijderen en niet via INS_KENMERKDEEL_VERWIJDER, want alleen bij
|
|
-- meterstanden werken we met dit verwijderdveld (omdat we historie moeten
|
|
-- bijhouden)!
|
|
--UPDATE ins_kenmerkdeel kd
|
|
-- SET kd.ins_kenmerkdeel_verwijder = SYSDATE
|
|
-- WHERE kd.ins_kenmerkdeel_verwijder IS NULL
|
|
-- AND ins_kenmerk_key = 97 -- Werkplek
|
|
-- AND EXISTS
|
|
-- (SELECT 1
|
|
-- FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg
|
|
-- WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
-- AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
-- AND sg.ins_discipline_key = 501 -- CMDB
|
|
-- AND INSTR (d.ins_deel_omschrijving, '/') > 0
|
|
-- AND d.ins_deel_key = kd.ins_deel_key);
|
|
DELETE FROM ins_kenmerkdeel kd
|
|
WHERE kd.ins_kenmerkdeel_verwijder IS NULL
|
|
AND ins_kenmerk_key = 97 -- Werkplek
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg
|
|
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 501 -- CMDB
|
|
AND INSTR (d.ins_deel_omschrijving, '/') > 0
|
|
AND d.ins_deel_key = kd.ins_deel_key);
|
|
COMMIT;
|
|
|
|
-- Vul Werkplek-kenmerkveld (key=97) met gedeelte voor '/' uit identificatie!
|
|
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
|
SELECT d.ins_deel_key, 97, SUBSTR (ins_deel_upper, 1, INSTR (d.ins_deel_upper, '/') - 1)
|
|
FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg
|
|
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
|
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 501 -- CMDB
|
|
AND INSTR (d.ins_deel_omschrijving, '/') > 0;
|
|
COMMIT;
|
|
|
|
-- Verwijder gedeelte voor '/' uit identificatie en vul aan met voorloopnullen
|
|
-- tot 5 posities (als lengte <= 5 posities)!
|
|
UPDATE ins_deel d
|
|
SET d.ins_deel_omschrijving = SUBSTR ('00000' || SUBSTR (ins_deel_omschrijving, INSTR (d.ins_deel_omschrijving, '/') + 1), -5)
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND INSTR (d.ins_deel_omschrijving, '/') > 0
|
|
AND LENGTH (SUBSTR (ins_deel_omschrijving, INSTR (d.ins_deel_omschrijving, '/') + 1)) <= 5
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM ins_srtdeel sd, ins_srtgroep sg
|
|
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 501 -- CMDB
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key);
|
|
COMMIT;
|
|
|
|
-- Verwijder gedeelte voor '/' uit identificatie (als lengte > 5 posities)!
|
|
UPDATE ins_deel d
|
|
SET d.ins_deel_omschrijving = SUBSTR (ins_deel_omschrijving, INSTR (d.ins_deel_omschrijving, '/') + 1)
|
|
WHERE d.ins_deel_verwijder IS NULL
|
|
AND INSTR (d.ins_deel_omschrijving, '/') > 0
|
|
AND LENGTH (SUBSTR (ins_deel_omschrijving, INSTR (d.ins_deel_omschrijving, '/') + 1)) > 5
|
|
AND EXISTS
|
|
(SELECT 1
|
|
FROM ins_srtdeel sd, ins_srtgroep sg
|
|
WHERE sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
|
AND sg.ins_discipline_key = 501 -- CMDB
|
|
AND sd.ins_srtdeel_key = d.ins_srtdeel_key);
|
|
COMMIT;
|
|
|
|
------ 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
|