119 lines
3.8 KiB
SQL
119 lines
3.8 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Korte beschrijving wat het script doet
|
|
-- Kostenplaatsen aanpassen zodat code weer in nummer staan en omschrijving goed staat
|
|
-- Verder worden de kostenplaatsen gegroepeerd en worden budgethouders toegekoend.
|
|
--
|
|
DEFINE thisfile = 'YASK#63182_1.SQL'
|
|
DEFINE dbuser = '^YASK'
|
|
|
|
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 kp.*,
|
|
(SELECT COUNT (*)
|
|
FROM prs_kostenplaats kp2
|
|
WHERE kp2.prs_kostenplaats_verwijder IS NULL
|
|
AND kp2.prs_kostenplaats_nr LIKE
|
|
'%(' || kpngrp || ')%') aantal
|
|
FROM (SELECT k.*,
|
|
SUBSTR (
|
|
prs_kostenplaats_nr,
|
|
INSTR (prs_kostenplaats_nr, '(') + 1,
|
|
INSTR (prs_kostenplaats_nr, ')')
|
|
- (INSTR (prs_kostenplaats_nr, '(') + 1)) kpngrp
|
|
FROM prs_kostenplaats k
|
|
WHERE prs_kostenplaats_nr LIKE '%(%)%'
|
|
AND prs_kostenplaats_verwijder IS NULL) kp
|
|
ORDER BY kpngrp;
|
|
|
|
v_index NUMBER;
|
|
v_kpngrp VARCHAR2 (20);
|
|
v_omschr VARCHAR2 (100);
|
|
v_postfix VARCHAR2 (200);
|
|
v_kpngrp_key NUMBER;
|
|
BEGIN
|
|
v_kpngrp := '-1';
|
|
|
|
FOR rec IN c
|
|
LOOP
|
|
v_omschr :=
|
|
TRIM(SUBSTR (rec.prs_kostenplaats_omschrijving,
|
|
1,
|
|
INSTR (rec.prs_kostenplaats_omschrijving, '(') - 1));
|
|
|
|
IF rec.kpngrp <> v_kpngrp
|
|
THEN
|
|
v_index := 0;
|
|
v_kpngrp := rec.kpngrp;
|
|
v_postfix := NULL;
|
|
|
|
INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_nr,
|
|
prs_kostenplaatsgrp_oms)
|
|
VALUES (rec.kpngrp, rec.kpngrp)
|
|
RETURNING prs_kostenplaatsgrp_key
|
|
INTO v_kpngrp_key;
|
|
END IF;
|
|
|
|
IF rec.aantal > 1
|
|
THEN
|
|
v_index := v_index + 1;
|
|
v_postfix := '-' || v_index;
|
|
END IF;
|
|
|
|
DBMS_OUTPUT.put_line (
|
|
rec.kpngrp
|
|
|| v_postfix
|
|
|| ' | '
|
|
|| v_omschr
|
|
|| ' * '
|
|
|| v_kpngrp_key);
|
|
UPDATE prs_kostenplaats SET prs_kostenplaats_nr = rec.kpngrp || v_postfix,
|
|
prs_kostenplaats_omschrijving = v_omschr,
|
|
prs_kostenplaatsgrp_key = v_kpngrp_key
|
|
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key;
|
|
END LOOP;
|
|
|
|
UPDATE prs_kostenplaats SET prs_perslid_key = 2001 -- Prevo, R.
|
|
WHERE prs_kostenplaats_nr LIKE 'L%';
|
|
|
|
UPDATE prs_kostenplaats SET prs_perslid_key = 2003 -- Reinders, S.
|
|
WHERE prs_kostenplaats_nr LIKE 'P702%'
|
|
OR prs_kostenplaats_nr LIKE 'P703%'
|
|
OR prs_kostenplaats_nr LIKE 'P704%'
|
|
OR prs_kostenplaats_nr LIKE 'P72%';
|
|
|
|
UPDATE prs_kostenplaats SET prs_perslid_key = 2005 -- Sturmans, B.
|
|
WHERE prs_kostenplaats_nr LIKE 'P705%'
|
|
OR prs_kostenplaats_nr LIKE 'P71%';
|
|
|
|
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
|