FCLT#84940 Performance anonimiseer routines
svn path=/Database/trunk/; revision=65940
This commit is contained in:
@@ -3,14 +3,22 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
CREATE_TRIGGER(bez_t_bez_afspraak_B_I)
|
||||
BEFORE INSERT ON bez_afspraak
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bez_afspraak_key,bez_s_bez_afspraak_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bez_t_bez_afspraak_B_IU)
|
||||
BEFORE INSERT OR UPDATE ON bez_afspraak
|
||||
FOR EACH ROW
|
||||
DECLARE dummy NUMBER;
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bez_afspraak_key,bez_s_bez_afspraak_key);
|
||||
|
||||
dummy := :new.bez_afspraak_key;
|
||||
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
|
||||
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
IF :new.bez_afspraak_contact_key IS NULL AND :new.prs_perslid_key IS NOT NULL THEN
|
||||
:new.bez_afspraak_contact_key := :new.prs_perslid_key;
|
||||
@@ -62,8 +70,8 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bez_t_bez_bezoekers_B_IU)
|
||||
BEFORE INSERT OR UPDATE ON bez_bezoekers
|
||||
CREATE_TRIGGER(bez_t_bez_bezoekers_B_I)
|
||||
BEFORE INSERT ON bez_bezoekers
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(bez_bezoekers_key,bez_s_bez_bezoekers_key);
|
||||
|
||||
@@ -329,7 +329,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
THEN
|
||||
-- Anonimiseer alle afspraken.
|
||||
-- Door de trigger in de update wordt automatische de naam van de host in de gastheer geplakt.
|
||||
-- Daardoor wordt de lcl "Ganonimiseerd" in vele gevallen niet blijvend in de gasheer gezet.
|
||||
-- Daardoor wordt de lcl "Ganonimiseerd" in vele gevallen niet blijvend in de gastheer gezet.
|
||||
-- De persoon (prs record) moet daarom eerst aangepast worden.
|
||||
-- Tijdens het anonimiseren van de persoon wordt daarom de bez_afspraak_gastheer ook geanonimiseerd.
|
||||
-- In de gevallen dat er geen host wordt gebruikt en alleen tekst voor de persoon (gastheer) wordt ingevuld wordt het veld wel blijvend gezet.
|
||||
@@ -412,6 +412,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
|
||||
v_count NUMBER;
|
||||
anonymize_mode NUMBER;
|
||||
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
|
||||
|
||||
-- Alle facturen die afgewezen of verwerkt zijn in de periode tussen de startdatum en de einddatum.
|
||||
CURSOR c_factuur
|
||||
@@ -479,6 +480,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
|
||||
IF anonymize_mode > 0
|
||||
THEN
|
||||
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt eventueel triggers
|
||||
|
||||
v_count := 0;
|
||||
FOR rec_f IN c_factuur
|
||||
LOOP
|
||||
@@ -542,18 +545,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
THEN
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU DISABLE';
|
||||
BEGIN
|
||||
-- Anonimiseren van tekstvelden in de factuur.
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_opmerking = CASE WHEN fin_factuur_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, fin_factuur_opmerking_afw = CASE WHEN fin_factuur_opmerking_afw IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU ENABLE';
|
||||
END;
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER fin_t_fin_factuur_B_IU ENABLE';
|
||||
-- Anonimiseren van tekstvelden in de factuur.
|
||||
UPDATE fin_factuur
|
||||
SET fin_factuur_opmerking = CASE WHEN fin_factuur_opmerking IS NOT NULL THEN lcl_fac_anonymized END
|
||||
, fin_factuur_opmerking_afw = CASE WHEN fin_factuur_opmerking_afw IS NOT NULL THEN lcl_fac_anonymized END
|
||||
WHERE fin_factuur_key = rec_f.fin_factuur_key;
|
||||
END IF;
|
||||
|
||||
-- Anonimiseren van de factuur tracken.
|
||||
@@ -592,7 +588,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
THEN
|
||||
-- Anonimiseren van tekstvelden in de factuurregels van de factuur.
|
||||
UPDATE fin_factuurregel
|
||||
SET fin_factuurregel_omschrijving = CASE WHEN fin_factuurregel_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
SET fin_factuurregel_omschrijving = CASE WHEN fin_factuurregel_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
|
||||
WHERE fin_factuurregel_key = rec_r.fin_factuurregel_key;
|
||||
|
||||
END IF;
|
||||
@@ -1051,6 +1047,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
prs_old_employee VARCHAR2 (100) := lcl.l('lcl_prs_old_employee');
|
||||
v_count NUMBER;
|
||||
anonymize_mode NUMBER;
|
||||
lcl_fac_anonymized fac_locale_xsl.fac_locale_xsl_tekst%TYPE := lcl.l('lcl_fac_anonymized');
|
||||
|
||||
-- Alle personen die tussen de startdatum en de einddatum verwijderd zijn.
|
||||
CURSOR c_reservering
|
||||
@@ -1107,6 +1104,8 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
|
||||
IF anonymize_mode > 0
|
||||
THEN
|
||||
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt eventuele triggers
|
||||
|
||||
v_count := 0;
|
||||
FOR rec_r IN c_reservering
|
||||
LOOP
|
||||
@@ -1164,9 +1163,9 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
THEN
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_omschrijving = CASE WHEN res_rsv_ruimte_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, res_rsv_ruimte_opmerking = CASE WHEN res_rsv_ruimte_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, res_rsv_ruimte_telefoon = CASE WHEN res_rsv_ruimte_telefoon IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
SET res_rsv_ruimte_omschrijving = CASE WHEN res_rsv_ruimte_omschrijving IS NOT NULL THEN lcl_fac_anonymized END
|
||||
, res_rsv_ruimte_opmerking = CASE WHEN res_rsv_ruimte_opmerking IS NOT NULL THEN lcl_fac_anonymized END
|
||||
, res_rsv_ruimte_telefoon = CASE WHEN res_rsv_ruimte_telefoon IS NOT NULL THEN lcl_fac_anonymized END
|
||||
WHERE res_rsv_ruimte_key = rec_r.res_rsv_ruimte_key;
|
||||
END IF;
|
||||
|
||||
@@ -1188,7 +1187,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
PROCEDURE anonymizefull(p_flags NUMBER DEFAULT 65535)
|
||||
AS
|
||||
BEGIN
|
||||
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt triggers die in de weg zitten
|
||||
DBMS_APPLICATION_INFO.SET_ACTION ('ANONYMIZE'); // Voorkomt trigger bez_t_bez_afspraak_B_IU die in de weg kan zitten
|
||||
|
||||
-- Destructive obstrufication of personal data.
|
||||
UPDATE prs_perslid
|
||||
@@ -1282,24 +1281,16 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
SET prs_contactpersoon_email= 'EC' || TO_CHAR(prs_contactpersoon_key) || '@notexist.facilitor.nl'
|
||||
WHERE prs_contactpersoon_email IS NOT NULL;
|
||||
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU DISABLE';
|
||||
UPDATE bez_afspraak
|
||||
SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50)
|
||||
FROM prs_v_perslid_fullnames_all
|
||||
WHERE prs_perslid_key = bez_afspraak_host_key
|
||||
)
|
||||
WHERE bez_afspraak_host_key IS NOT NULL;
|
||||
UPDATE bez_afspraak
|
||||
SET bez_afspraak_gastheer = (SELECT SUBSTR(prs_perslid_naam_full,1,50)
|
||||
FROM prs_v_perslid_fullnames_all
|
||||
WHERE prs_perslid_key = bez_afspraak_host_key
|
||||
)
|
||||
WHERE bez_afspraak_host_key IS NOT NULL;
|
||||
|
||||
UPDATE bez_afspraak
|
||||
SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
|
||||
WHERE bez_afspraak_host_key IS NULL;
|
||||
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE';
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
EXECUTE IMMEDIATE 'ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE';
|
||||
END;
|
||||
UPDATE bez_afspraak
|
||||
SET bez_afspraak_gastheer = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
|
||||
WHERE bez_afspraak_host_key IS NULL;
|
||||
|
||||
UPDATE bez_bezoekers
|
||||
SET bez_afspraak_naam = UPPER(SUBSTR(bez_afspraak_naam,1,1)) || '. Bezoeker'
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
CREATE_TRIGGER(fin_t_fin_factuur_b_iu)
|
||||
BEFORE INSERT OR UPDATE ON fin_factuur
|
||||
CREATE_TRIGGER(fin_t_fin_factuur_b_i)
|
||||
BEFORE INSERT ON fin_factuur
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(fin_factuur_key, fin_s_fin_factuur_key);
|
||||
@@ -13,8 +13,8 @@ BEGIN
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(fin_t_fin_factuurregel_b_iu)
|
||||
BEFORE INSERT OR UPDATE ON fin_factuurregel
|
||||
CREATE_TRIGGER(fin_t_fin_factuurregel_b_i)
|
||||
BEFORE INSERT ON fin_factuurregel
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE_PRIMARY_KEY(fin_factuurregel_key, fin_s_fin_factuurregel_key);
|
||||
|
||||
@@ -407,6 +407,11 @@ CREATE_TRIGGER(res_t_res_rsv_ruimte_B_IU)
|
||||
BEFORE INSERT OR UPDATE ON res_rsv_ruimte
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
IF sys_context('USERENV', 'ACTION') = 'ANONYMIZE' OR
|
||||
sys_context('USERENV', 'ACTION') = 'DBUPGRADE' THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
-- Niet waterdicht, meestal adequaat
|
||||
IF NOT UPDATING('res_rsv_ruimte_satisfaction')
|
||||
THEN
|
||||
|
||||
@@ -112,9 +112,12 @@ ALTER TABLE mld_melding
|
||||
MODIFY mld_melding_onderwerp_ai VARCHAR2(200);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// MARX#80460
|
||||
BEGIN
|
||||
adm.tryalter('TABLE prs_bedrijfadres DROP CONSTRAINT prs_c_prs_bedrijfadrestype');
|
||||
END;
|
||||
ALTER TABLE prs_bedrijfadres DROP CONSTRAINT prs_c_prs_bedrijfadrestype;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#84940
|
||||
DROP TRIGGER fin_t_fin_factuur_B_IU;
|
||||
DROP TRIGGER fin_t_fin_factuurregel_B_IU;
|
||||
DROP TRIGGER bez_t_bez_bezoekers_B_IU;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
|
||||
|
||||
|
||||
Reference in New Issue
Block a user