51 lines
1.8 KiB
Plaintext
51 lines
1.8 KiB
Plaintext
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
|
|
ma, popolnoime, oblika, organ, po, hs, dodatek, upravnaenota, regija, obcina, posta, naselje, ulica, null, '2015-12-01'
|
|
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,
|
|
zadnjaomemba='2016-01-07';
|
|
|
|
Nastavimo še status subjektov:
|
|
update prs set status='izbrisano';
|
|
update prs set status = 'aktivno' where zadnjaomemba = '2016-07-01'; |