FCLT#69095 ORA-error op anonimiseren

svn path=/Database/trunk/; revision=57287
This commit is contained in:
Erik Groener
2022-09-14 14:33:42 +00:00
parent 761e6912a1
commit 7aa87481fd
2 changed files with 21 additions and 124 deletions

View File

@@ -16,7 +16,7 @@ CREATE OR REPLACE PACKAGE ano AS
FUNCTION postcode(postcode_veld IN VARCHAR2) RETURN VARCHAR2;
FUNCTION telefoon(telefoon_veld IN VARCHAR2) RETURN VARCHAR2;
FUNCTION adres(adres_veld IN VARCHAR2) RETURN VARCHAR2;
FUNCTION naam(naam_veld IN VARCHAR2, uniek IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2;
FUNCTION naam(naam_veld IN VARCHAR2, uniek IN NUMBER DEFAULT 0) RETURN VARCHAR2;
FUNCTION email(email_veld IN VARCHAR2) RETURN VARCHAR2;
FUNCTION memo(memo_veld IN VARCHAR2) RETURN VARCHAR2;
END ano;
@@ -514,7 +514,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
AND bez_afspraak_bedrijf <> 'Anoniem';
UPDATE prs_bedrijf
SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 'prs_bedrijf.prs_bedrijf_naam_upper')
SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 10)
, prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres)
, prs_bedrijf_post_postcode = ano.postcode(prs_bedrijf_post_postcode)
, prs_bedrijf_bezoek_adres = ano.adres(prs_bedrijf_bezoek_adres)
@@ -707,7 +707,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
RETURN email;
END email;
FUNCTION naam(naam_veld IN VARCHAR2, uniek IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2
FUNCTION naam(naam_veld IN VARCHAR2, uniek IN NUMBER DEFAULT 0) RETURN VARCHAR2
IS
a NUMBER;
c NUMBER := 1;
@@ -719,8 +719,6 @@ CREATE OR REPLACE PACKAGE BODY ano AS
BEGIN
IF (naam_veld IS NOT NULL)
THEN
WHILE (c > 0)
LOOP
a := LENGTH(naam_veld)-1;
IF (SUBSTR(naam_veld,LENGTH(naam_veld),1) = ')' AND INSTR(naam_veld,'(',-1) > 0)
THEN
@@ -728,18 +726,12 @@ CREATE OR REPLACE PACKAGE BODY ano AS
v := ' ('||SUBSTR(v,1,50)||')';
a := LENGTH(naam_veld) - LENGTH(v) -1;
END IF;
IF (a < uniek AND uniek > 0)
THEN
a := uniek;
END IF;
i := SUBSTR(naam_veld,1,1);
naam := UPPER(i)||DBMS_RANDOM.string('l', a)||v;
IF (uniek IS NOT NULL)
THEN
tb := substr(uniek,1, INSTR(uniek,'.')-1);
ex := 'SELECT count(*) FROM ' || tb || ' WHERE UPPER(' || uniek || ') = ''' || UPPER(naam) || '''';
EXECUTE IMMEDIATE(ex) INTO c;
ELSE
c := 0;
END IF;
END LOOP;
END IF;
RETURN naam;
END naam;

View File

@@ -20,106 +20,11 @@ BEGIN
END;
/
-- Destructive obstrufication of personal data.
UPDATE prs_perslid
SET prs_perslid_naam =
INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam)))
WHERE prs_perslid_naam NOT LIKE 'INACTIEF:%'
AND prs_perslid_naam NOT LIKE 'Facilitor'
AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_');
UPDATE prs_perslid
SET prs_perslid_voornaam =
INITCAP (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voornaam)))
WHERE prs_perslid_voornaam IS NOT NULL
AND (prs_perslid_oslogin IS NULL OR SUBSTR(prs_perslid_oslogin, 1, 1) <> '_');
UPDATE prs_perslid
SET prs_perslid_voorletters =
UPPER (DBMS_RANDOM.string ('l', LENGTH (prs_perslid_voorletters)))
WHERE prs_perslid_voorletters IS NOT NULL;
UPDATE prs_perslid
SET prs_perslid_naam =
'INACTIEF:'
|| INITCAP (
DBMS_RANDOM.string ('l', LENGTH (prs_perslid_naam) - 9))
WHERE prs_perslid_naam LIKE 'INACTIEF:%';
UPDATE prs_perslid SET prs_perslid_email='E'||TO_CHAR(prs_perslid_key)||'@facilitor.nl'
WHERE prs_perslid_email IS NOT NULL;
UPDATE prs_perslid SET prs_perslid_oslogin2='O'||TO_CHAR(prs_perslid_key)
WHERE prs_perslid_oslogin2 IS NOT NULL;
UPDATE prs_perslid SET prs_perslid_wachtwoord_hash = null;
UPDATE prs_perslid SET prs_perslid_apikey = 'TEST_' || DBMS_RANDOM.string('a', 10)
WHERE prs_perslid_apikey IS NOT NULL;
DELETE FROM fac_imp_perslid;
UPDATE prs_contactpersoon
SET prs_contactpersoon_naam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_naam)));
UPDATE prs_contactpersoon
SET prs_contactpersoon_voornaam = INITCAP (DBMS_RANDOM.string ('l', LENGTH(prs_contactpersoon_voornaam)))
WHERE prs_contactpersoon_voornaam IS NOT NULL;
UPDATE prs_contactpersoon
SET prs_contactpersoon_voorletters = SUBSTR(prs_contactpersoon_voornaam,1,1)|| SUBSTR(prs_contactpersoon_voorletters,2)
WHERE prs_contactpersoon_voorletters IS NOT NULL;
UPDATE prs_contactpersoon SET prs_contactpersoon_email='anonymous@facilitor.nl'
WHERE prs_contactpersoon_email IS NOT NULL;
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 = INITCAP (DBMS_RANDOM.string ('l', LENGTH (bez_afspraak_gastheer)))
WHERE bez_afspraak_host_key IS NULL;
ALTER TRIGGER bez_t_bez_afspraak_B_IU ENABLE;
UPDATE bez_bezoekers
SET bez_afspraak_naam = UPPER(SUBSTR(bez_afspraak_naam,1,1))||'. Bezoeker'
WHERE bez_afspraak_naam IS NOT NULL
AND bez_afspraak_naam <> 'Anoniem';
UPDATE bez_bezoekers
SET bez_afspraak_bedrijf = UPPER(SUBSTR(bez_afspraak_bedrijf,1,1))||'areon B.V.'
WHERE bez_afspraak_bedrijf IS NOT NULL
AND bez_afspraak_bedrijf <> 'Anoniem';
UPDATE prs_bedrijf
SET prs_bedrijf_naam = ano.naam(prs_bedrijf_naam, 'prs_bedrijf.prs_bedrijf_naam_upper')
, prs_bedrijf_post_adres = ano.adres(prs_bedrijf_post_adres)
, prs_bedrijf_post_postcode = ano.postcode(prs_bedrijf_post_postcode)
, prs_bedrijf_bezoek_adres = ano.adres(prs_bedrijf_bezoek_adres)
, prs_bedrijf_bezoek_postcode = ano.postcode(prs_bedrijf_bezoek_postcode)
, prs_bedrijf_telefoon = ano.telefoon(prs_bedrijf_telefoon)
, prs_bedrijf_telefoon2 = ano.telefoon(prs_bedrijf_telefoon2)
, prs_bedrijf_fax = ano.telefoon(prs_bedrijf_fax)
, prs_bedrijf_email = ano.email(prs_bedrijf_email)
, prs_bedrijf_contact_persoon = ano.naam(prs_bedrijf_contact_persoon)
, prs_bedrijf_contact_telefoon = ano.telefoon(prs_bedrijf_contact_telefoon)
, prs_bedrijf_contact_fax = ano.telefoon(prs_bedrijf_contact_fax);
UPDATE prs_bedrijfadres
SET prs_bedrijfadres_url = ano.email(prs_bedrijfadres_url)
, prs_bedrijfadres_username = ano.naam(prs_bedrijfadres_username)
, prs_bedrijfadres_password = NULL;
DROP PACKAGE anoniem;
UPDATE aut_idp
SET aut_idp_secret = 'TEST_' || DBMS_RANDOM.string('a', 10)
WHERE aut_idp_secret IS NOT NULL
AND aut_idp_internal = 0;
UPDATE aut_sp
SET aut_sp_secret = 'TEST_' || DBMS_RANDOM.string('a', 10)
WHERE aut_sp_secret IS NOT NULL
AND aut_sp_internal = 0;
BEGIN
-- Destructive obstrufication of personal data.
ano.anonymizefull();
END;
/
BEGIN adm.systrackscriptid('$Id$'); END;
/