From 9f34ecd99dc693dff5ef1e9c45050b9188d6e021 Mon Sep 17 00:00:00 2001 From: Arthur Egberink Date: Thu, 2 Mar 2023 13:26:56 +0000 Subject: [PATCH] KMMO#76640 -- Inrichting conditiemetingen svn path=/Customer/; revision=59412 --- onces/KMMO/KMMO#76640.sql | 80 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 onces/KMMO/KMMO#76640.sql diff --git a/onces/KMMO/KMMO#76640.sql b/onces/KMMO/KMMO#76640.sql new file mode 100644 index 000000000..10ea22aec --- /dev/null +++ b/onces/KMMO/KMMO#76640.sql @@ -0,0 +1,80 @@ +-- +-- $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