Files
Customer/onces/UWVA/uwva#30641.sql
2014-10-29 12:58:01 +00:00

91 lines
2.8 KiB
SQL

-- Customer specific once-script UWVA#30641.
-- $Id$
SET ECHO ON
SPOOL xuwva#30641.lst
SET DEFINE OFF
SET SERVEROUTPUT ON size 1000000;
DECLARE
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (255);
v_aanduiding VARCHAR2 (255);
v_errormsg VARCHAR2 (1024);
v_errorhint VARCHAR2 (1024);
CURSOR c
IS
SELECT ac.bez_actie_omschrijving actie_oproep
,ac.bez_actie_key
,rr.res_ruimte_nr ruimte
,rrr.res_rsv_ruimte_key
,rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr deelres
,rrr.res_rsv_ruimte_van van
,a.bez_afspraak_key
,a.bez_actie_key actie_oud
FROM bez_actie ac
,res_ruimte rr
,res_ruimte_opstelling ro
,res_rsv_ruimte rrr
,bez_afspraak a
WHERE BITAND(ac.bez_actie_flags, 1) = 1
AND rr.bez_actie_key = ac.bez_actie_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND a.bez_afspraak_datum > TRUNC(SYSDATE)
AND ( a.bez_actie_key != ac.bez_actie_key
OR a.bez_actie_key IS NULL);
BEGIN
FOR r IN c
LOOP
BEGIN
v_aanduiding := 'Afspraak '||r.bez_afspraak_key
||' bij res '||r.deelres
||' ('||r.res_rsv_ruimte_key
||') in "'||r.ruimte
||'" op '||TO_CHAR(r.van, 'dd-mm-yyyy hh24:mi');
v_errorhint := 'Update bez_actie bij bez_afspraak';
UPDATE bez_afspraak
SET bez_actie_key = r.bez_actie_key
WHERE bez_afspraak_key = r.bez_afspraak_key;
DBMS_OUTPUT.PUT_LINE (v_aanduiding);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errorhint := v_errormsg;
v_errormsg :=
v_aanduiding
|| '(ORACLE error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
DBMS_OUTPUT.PUT_LINE ('Error: '||v_errormsg||'; Hint: '||v_errorhint);
END;
END LOOP;
END;
/
-- Alle res_ruimtes zonder default-activiteit een default toekennen
UPDATE res_ruimte
SET bez_actie_key = 5
WHERE bez_actie_key IS NULL;
-- Alle toekomstige afspraken die geen activiteit hebben, 'Ophalen' toekennen
UPDATE bez_afspraak
SET bez_actie_key = 5
WHERE bez_afspraak_datum > TRUNC(SYSDATE)
AND bez_actie_key IS NULL;
BEGIN adm.systrackscriptId('$Id$'); END;
/
COMMIT;
SPOOL OFF