nas-denar/Docs/Obdelava PRS.txt

51 lines
1.8 KiB
Plaintext
Raw Normal View History

2017-09-14 20:06:51 +02:00
Obdelava PRS registra
=====================
Včasih se zgodi, da imamo podvojene vnose - dve matični in ena davčna. Poiščeš jih tako:
select davcna, count(*) pojavitve from prs where davcna is not null group by davcna having count(*) > 1 order by 2 desc;
Uvoz novih podatkov
===================
Podatke najprej uvozimo v začasno tabelo "prs_old" in potem spravimo od tam v tabelo "prs".
Postopek:
---------
Pridobimo podatke:
wget http://www.ajpes.si/doc/Registri/PRS/Ponovna_uporaba/Prs.zip
Podatke razpakiramo:
unzip Prs.zip
Odstranimo znake za novo vrstico iz datoteke:
tr -d '\n' < Prs.xml > Prs1.xml
XML spremenimo v CSV:
java -jar XML2CSV.jar -a -xXV1 -s "|" -i Prs1.xml -o ./
Podatke vstavimo v pomožno tabelo, ki jo prej izpraznimo (ukaz TRUNCATE)
psql supervizor -c "copy prs_old FROM '/export/home/matjaz/postgres/ajpes/Prs1.csv' DELIMITER '|' CSV HEADER quote E'\b';"
Uvoz podatkov iz začasne lokacije v končno izvedemo tako, da stare podatke posodobimo s podatki iz nove datoteke oz. če podatkov ni, jih dodamo:
insert into prs
(ma, popolnoime, oblika, organ, po, hs, dodatek, upravnaenota, regija, obcina, posta, naselje, ulica, davcna, zadnjaomemba)
select
2017-09-14 21:13:49 +02:00
ma, popolnoime, oblika, organ, po, hs, dodatek, upravnaenota, regija, obcina, posta, naselje, ulica, null, '2017-06-30'
2017-09-14 20:06:51 +02:00
FROM prs_old
ON CONFLICT ("ma") DO UPDATE
SET
popolnoime=excluded.popolnoime,
oblika=excluded.oblika,
organ=excluded.organ,
po=excluded.po,
hs=excluded.hs,
dodatek=excluded.dodatek,
upravnaenota=excluded.upravnaenota,
regija=excluded.regija,
obcina=excluded.obcina,
posta=excluded.posta,
naselje=excluded.naselje,
ulica=excluded.ulica,
2017-09-14 21:13:49 +02:00
zadnjaomemba='2017-06-30';
2017-09-14 20:06:51 +02:00
Nastavimo še status subjektov:
update prs set status='izbrisano';
2017-09-14 21:13:49 +02:00
update prs set status = 'aktivno' where zadnjaomemba = '2017-06-30';