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