Files
Customer/onces/KMMO/KMMO#76640.sql
Arthur Egberink 9f34ecd99d KMMO#76640 -- Inrichting conditiemetingen
svn path=/Customer/; revision=59412
2023-03-02 13:26:56 +00:00

81 lines
2.3 KiB
SQL

--
-- $Id$
--
-- Script om het volgnummer bij ingelezen installaties aan te passen. Er bestaan vaak al objecten met dezelfde indentificatie. Dit script
-- moet na de import uitgevoerd worden en past de data in de fac_imp_ins tabel aan. Hiervoor dient wel een unieke identificatie in de kolom
-- ins_deel_externnr te staan.
--
DEFINE thisfile = 'KMMO#76640.sql'
DEFINE dbuser = '^KMMO'
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 c IS
SELECT *
FROM fac_imp_ins
ORDER BY ins_srtdeel_code;
v_index NUMBER;
v_ins_srtdeel_code_old VARCHAR2 (10);
BEGIN
v_ins_srtdeel_code_old := 'QueQueLeQu';
FOR rec IN c
LOOP
IF rec.ins_srtdeel_code <> v_ins_srtdeel_code_old
THEN
BEGIN
SELECT MAX (SUBSTR (ins_deel_omschrijving, INSTR (ins_deel_omschrijving, '-') + 1, 2))
INTO v_index
FROM ins_deel d, ins_srtdeel sd
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtdeel_code = rec.ins_srtdeel_code
GROUP BY ins_srtdeel_upper;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
v_index := 0;
END;
v_ins_srtdeel_code_old := rec.ins_srtdeel_code;
END IF;
v_index := v_index + 1;
--DBMS_OUTPUT.put_line (rec.ins_srtdeel_code || '-' || v_index);
UPDATE fac_imp_ins i
SET i.ins_deel_omschrijving = rec.ins_srtdeel_code || '-' || LPAD (v_index, 2, '0')
WHERE i.ins_deel_externnr = rec.ins_deel_externnr;
END LOOP;
COMMIT;
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