Files
Customer/onces/AKZO/AKZO#68423.sql
Suzan Wiegerinck bcd5182b6d AKZO#68423 Codering sleutels niet goed herkenbaar voor beveiligers SSH
svn path=/Customer/; revision=52794
2021-08-26 12:34:49 +00:00

164 lines
5.5 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,
d.ins_deel_upper
omschr_upper_old,
UPPER (merk.ins_kenmerkdeel_waarde) || '/' || d.ins_deel_upper
omschr_upper_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 || '/' || sd.ins_srtdeel_code
srt_deel_code_new,
sd.ins_srtdeel_code_upper
srt_deel_code_upper_old,
merk.ins_kenmerkdeel_waarde
|| '/'
|| sd.ins_srtdeel_code_upper
srt_deel_code_upper_new,
sd.ins_srtdeel_omschrijving
srt_deel_old,
merk.ins_kenmerkdeel_waarde
|| '/'
|| sd.ins_srtdeel_omschrijving
srt_deel_new,
sd.ins_srtdeel_upper
srt_deel_upper_old,
UPPER (merk.ins_kenmerkdeel_waarde)
|| '/'
|| sd.ins_srtdeel_upper
srt_deel_upper_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,
id.ins_deel_upper = rec.omschr_upper_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');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'Codering sleutel',
'E',
'Overwachte fout ins_deel_key: ' || rec.ins_deel_key,
'');
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_upper = rec.srt_deel_upper_new,
srt.ins_srtdeel_code = rec.srt_deel_code_new,
srt.ins_srtdeel_code_upper = rec.srt_deel_code_upper_new
WHERE srt.ins_srtdeel_key = rec.ins_srtdeel_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'Codering sleutelset',
'E',
'Overwachte fout ins_srtdeel: ' || 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