114 lines
4.1 KiB
SQL
114 lines
4.1 KiB
SQL
-- Customer specific once-script voor BLOS
|
|
|
|
-- $Id$
|
|
--
|
|
-- Oncescript om het (oorspronkelijke) label van de locatie ook op de meldingen door te zetten
|
|
|
|
DEFINE thisfile = 'BLOS#68339_label_mld.SQL'
|
|
DEFINE dbuser = '^BLOS'
|
|
|
|
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 ------
|
|
|
|
DECLARE
|
|
-- v_locatie_key NUMBER;
|
|
v_kenmerk_waarde_cluster VARCHAR (100);
|
|
v_kenmerk_waarde_key NUMBER (10);
|
|
v_mld_kenmerkmelding_key NUMBER (10);
|
|
v_mld_kenmerkmelding_waarde VARCHAR (100);
|
|
v_errormsg VARCHAR2 (200);
|
|
|
|
CURSOR c
|
|
IS
|
|
SELECT mld_melding_key, mld_alg_locatie_key
|
|
FROM mld_melding
|
|
WHERE mld_stdmelding_key NOT IN (1) -- Niet voor M2M-meldingen
|
|
AND mld_alg_locatie_key IS NOT NULL
|
|
-- AND mld_melding_key in (7964, 4517, 7451, 6277, 7479, 3614)
|
|
;
|
|
|
|
BEGIN
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
BEGIN
|
|
-- Ophalen waarde Cluster bij Locatie vastgelegd
|
|
SELECT ud.fac_usrdata_omschr, ud.fac_usrdata_key
|
|
INTO v_kenmerk_waarde_cluster, v_kenmerk_waarde_key
|
|
FROM alg_locatie l, alg_onrgoedkenmerk k, alg_kenmerk km, fac_kenmerkdomein kd, fac_usrdata ud
|
|
WHERE l.alg_locatie_key = rec.mld_alg_locatie_key
|
|
AND l.alg_locatie_key = k.alg_onrgoed_key AND alg_onrgoed_niveau = 'L' AND k.alg_kenmerk_key = 1000 -- Clusterlabel (oorspronkelijk)
|
|
AND k.alg_kenmerk_key = km.alg_kenmerk_key
|
|
AND km.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
|
AND kd.fac_usrtab_key = ud.fac_usrtab_key
|
|
AND fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key ;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_kenmerk_waarde_cluster := NULL;
|
|
v_kenmerk_waarde_key := NULL;
|
|
END;
|
|
|
|
BEGIN
|
|
-- Is het kenmerk al eerder weggeschreven op de melding?
|
|
SELECT km.mld_kenmerkmelding_key, km.mld_kenmerkmelding_waarde
|
|
INTO v_mld_kenmerkmelding_key, v_mld_kenmerkmelding_waarde
|
|
FROM mld_melding m, mld_kenmerkmelding km
|
|
WHERE m.mld_melding_key = rec.mld_melding_key
|
|
AND m.mld_melding_key = km.mld_melding_key
|
|
AND km.mld_kenmerk_key = 221 -- Clusterlabel (oorspronkelijk)
|
|
AND km.mld_kenmerkmelding_verwijder IS NULL ;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
v_mld_kenmerkmelding_key := NULL;
|
|
END;
|
|
|
|
-- Toevoegen kenmerk-record als waarde gevuld en er nog geen record is aangemaakt
|
|
IF v_kenmerk_waarde_cluster IS NOT NULL AND v_mld_kenmerkmelding_key IS NULL
|
|
THEN
|
|
BEGIN
|
|
INSERT INTO mld_kenmerkmelding (mld_melding_key,
|
|
mld_kenmerk_key,
|
|
mld_kenmerkmelding_waarde)
|
|
VALUES (rec.mld_melding_key, 221, v_kenmerk_waarde_cluster) ;
|
|
END;
|
|
END IF;
|
|
|
|
-- Aanpassen kenmerk-record als de locatie is omgezet op de melding
|
|
IF v_kenmerk_waarde_cluster IS NOT NULL AND v_mld_kenmerkmelding_key IS NOT NULL AND v_mld_kenmerkmelding_waarde <> v_kenmerk_waarde_cluster
|
|
THEN
|
|
BEGIN
|
|
UPDATE mld_kenmerkmelding
|
|
SET mld_kenmerkmelding_waarde = v_kenmerk_waarde_cluster
|
|
WHERE mld_kenmerkmelding_key = v_mld_kenmerkmelding_key;
|
|
END;
|
|
END IF;
|
|
|
|
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
|