90 lines
2.9 KiB
SQL
90 lines
2.9 KiB
SQL
--
|
|
-- $Id$
|
|
--
|
|
-- Customer specific once-script BLCC#70821.sql.
|
|
DEFINE thisfile = 'BLCC#70821.sql'
|
|
DEFINE dbuser = '^BLCC'
|
|
|
|
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 ------
|
|
|
|
-- BLCC#70821: Splits de 2501=Soft Services Cleaning contracten per 28-02-2022!
|
|
SET SERVEROUTPUT ON size 1000000;
|
|
|
|
DECLARE
|
|
CURSOR ccnt (p_splitsindexdatum DATE)
|
|
IS
|
|
SELECT '[' || c.cnt_contract_nummer_intern || '.' || COALESCE (c.cnt_contract_versie, '0') || '] '
|
|
aanduiding,
|
|
c.ins_discipline_key,
|
|
c.cnt_contract_key,
|
|
c.cnt_contract_nummer_intern,
|
|
c.cnt_contract_versie,
|
|
c.cnt_contract_looptijd_tot einddatum
|
|
FROM cnt_v_aanwezigcontract c
|
|
WHERE c.ins_discipline_key IN (2501) -- Soft Services Cleaning
|
|
AND c.cnt_contract_status = 0 -- Definitief
|
|
AND c.cnt_contract_looptijd_tot > p_splitsindexdatum
|
|
AND NOT EXISTS -- Beschouw alleen laatste versie van contracten
|
|
(SELECT 1
|
|
FROM cnt_v_aanwezigcontract
|
|
WHERE cnt_contract_nummer_intern = c.cnt_contract_nummer_intern
|
|
AND cnt_contract_versie > COALESCE (c.cnt_contract_versie, '0'))
|
|
ORDER BY TO_NUMBER (c.cnt_contract_nummer_intern);
|
|
|
|
c_splitsindexdatum DATE := TO_DATE ('01032022', 'ddmmyyyy');
|
|
v_errormsg VARCHAR2 (1000);
|
|
oracle_err_num NUMBER;
|
|
oracle_err_mes VARCHAR2 (200);
|
|
v_count NUMBER;
|
|
BEGIN
|
|
v_count := 0;
|
|
|
|
FOR rec IN ccnt (c_splitsindexdatum)
|
|
LOOP
|
|
BEGIN
|
|
v_errormsg := 'Fout splitsen contract.';
|
|
cnt.splitscontract (rec.cnt_contract_key, c_splitsindexdatum, NULL, NULL);
|
|
COMMIT;
|
|
|
|
v_count := v_count + 1;
|
|
EXCEPTION
|
|
WHEN OTHERS
|
|
THEN
|
|
oracle_err_num := SQLCODE;
|
|
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
|
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
|
DBMS_OUTPUT.PUT_LINE ('E: ' || rec.aanduiding || v_errormsg);
|
|
COMMIT;
|
|
END;
|
|
END LOOP;
|
|
|
|
DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count) || ' contracten gesplitst');
|
|
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
|