Files
Customer/onces/AKZO/AKZO#68423.sql
2021-08-26 13:49:18 +00:00

119 lines
4.0 KiB
SQL

--
-- $Id$
--
-- AKZO#68423 Codering sleutels niet goed herkenbaar voor beveiligers SSH
-- Script om het merknummer dat bij een sleutel in het kenmerkveld is opgenomen
-- op te nemen in het nummer van de sleutels (ins deel) en de sleutelsets (ins soort deel)
--
DEFINE thisfile = 'AKZO#68423.SQL'
DEFINE dbuser = '^AKZO'
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
CURSOR deel IS
SELECT d.ins_deel_key,
d.ins_deel_omschrijving omschr_old,
merk.ins_kenmerkdeel_waarde || '/' || d.ins_deel_omschrijving omschr_new
FROM ins_deel d,
ins_srtdeel sd,
alg_v_ruimte_gegevens_all r,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_key = 62) merk
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND merk.ins_deel_key = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND sd.ins_srtgroep_key = 62
AND r.alg_locatie_key = 1
AND r.alg_ruimte_key =
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key);
CURSOR soortdeel IS
SELECT DISTINCT
sd.ins_srtdeel_key,
sd.ins_srtdeel_code srt_deel_code_old,
merk.ins_kenmerkdeel_waarde srt_deel_code_new,
sd.ins_srtdeel_omschrijving srt_deel_old,
merk.ins_kenmerkdeel_waarde
|| '/'
|| sd.ins_srtdeel_omschrijving srt_deel_new
FROM ins_deel d,
ins_srtdeel sd,
alg_v_ruimte_gegevens_all r,
(SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_key = 62) merk
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND merk.ins_deel_key = d.ins_deel_key
AND d.ins_deel_verwijder IS NULL
AND sd.ins_srtgroep_key = 62
AND r.alg_locatie_key = 1
AND r.alg_ruimte_key =
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key);
BEGIN
FOR rec IN deel
LOOP
BEGIN
UPDATE INS_DEEL id
SET id.ins_deel_omschrijving = rec.omschr_new
WHERE id.ins_deel_key = rec.ins_deel_key;
fac.trackaction (
'INSUPD',
rec.ins_deel_key,
4,
NULL,
'AKZO#68423: Codering sleutel aangevuld met merknummer');
END;
END LOOP;
FOR rec IN soortdeel
LOOP
BEGIN
UPDATE INS_SRTDEEL srt
SET srt.ins_srtdeel_omschrijving = rec.srt_deel_new,
srt.ins_srtdeel_code = rec.srt_deel_code_new
WHERE srt.ins_srtdeel_key = rec.ins_srtdeel_key;
END;
END LOOP;
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