Files
Customer/CONN/Once/OpschonenAfdPrs.sql
2012-09-23 15:37:06 +00:00

122 lines
3.2 KiB
SQL

-- OpschonenAfdPrs.sql
--
--
SET ECHO ON
SPOOL xOpschonenAfdPrs.lst
PROMPT $Revision$
DECLARE
CURSOR c_cursor
IS
select p.prs_perslid_key from prs_v_verplichting_all v, prs_perslid p
where p.prs_perslid_key = v.prs_perslid_key(+)
and p.prs_perslid_verwijder is not null
and v.prs_perslid_key is null;
next_record c_cursor%ROWTYPE;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (1024);
BEGIN
FOR next_record IN c_cursor LOOP
BEGIN
DELETE PRS_PERSLID WHERE PRS_PERSLID_KEY = next_record.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
|| ')';
INSERT INTO IMP_LOG(IMP_LOG_APPLICATIE, IMP_LOG_RUN, IMP_LOG_STATUS, IMP_LOG_DATUM, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
values
('DELETE PERSOON','BATCH', 'E', sysdate, 'Verwijderen perslid_key: ' || next_record.prs_perslid_key , v_errormsg);
COMMIT;
END;
END LOOP;
commit;
-- verwijderen van personen kan enige tijd duren (+/- 1 uur).
END;
/
DECLARE
CURSOR c_cursor
IS
SELECT DISTINCT prs_afdeling_key, prs_afdeling_omschrijving,prs_afdeling_naam FROM prs_afdeling where prs_afdeling_verwijder is not null;
next_record c_cursor%ROWTYPE;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (1024);
BEGIN
FOR next_record IN c_cursor LOOP
BEGIN
DELETE PRS_AFDELING WHERE PRS_AFDELING_KEY = next_record.prs_afdeling_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
|| ')';
INSERT INTO IMP_LOG(IMP_LOG_APPLICATIE, IMP_LOG_RUN, IMP_LOG_STATUS, IMP_LOG_DATUM, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
values
('DELETE AFDELING','BATCH', 'E', sysdate, 'Verwijderen (1e run) afd_key: ' || next_record.prs_afdeling_key , v_errormsg);
COMMIT;
END;
END LOOP;
FOR next_record IN c_cursor LOOP
BEGIN
DELETE PRS_AFDELING WHERE PRS_AFDELING_KEY = next_record.prs_afdeling_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'(ORACLE error ' || oracle_err_num || '/' || oracle_err_mes
|| ')';
INSERT INTO IMP_LOG(IMP_LOG_APPLICATIE, IMP_LOG_RUN, IMP_LOG_STATUS, IMP_LOG_DATUM, IMP_LOG_OMSCHRIJVING, IMP_LOG_HINT)
values
('DELETE AFDELING','BATCH', 'E', sysdate, 'Verwijderen (2e run) afd_key: ' || next_record.prs_afdeling_key , v_errormsg);
COMMIT;
END;
END LOOP;
commit;
-- verwijderen van afdelingen kan enige tijd duren (< 1 uur).
END;
/
SPOOL OFF