Her er en oppskrift for å få alle Norges poststeder inn i en egnet tabell.

Last ned Postnummerregister_ansi.txt fra Bring.

Dette er en tekstfil skrevet i tegnsettet CP1252, hvor feltene skilles med HT og linjene avsluttes med CRLF-par. Formatet er også beskrevet av Bring.

Feltene er:

Postnummer Poststed Kommunekode Kommunenavn Kategori
4 32 4 30 1

I de fleste tilfellene trenger vi bare de to første feltene fra tekstfila.

Først kan vi definere en SQL-tabell for poststed:

CREATE TABLE poststed (
  postnr   CHAR(4)     NOT NULL,
  poststed VARCHAR(32) NOT NULL,
  CONSTRAINT poststed_pk PRIMARY KEY (postnr)
);

Dernest trenger vi å generere SQL-skript for effektiv mating av poststeder:

fetch -o Postnummerregister_ansi.txt 'http://www.bring.no/radgivning/sende-noe/adressetjenester/postnummer/_attachment/615728?_download=true&_ts=1572df893c0'
awk '
  BEGIN { FS="\t"; ORS="\r\n"; print "BEGIN;"; }
  { print "INSERT INTO poststed VALUES (\"" $1 "\", \"" $2 "\");"; }
  END { print "COMMIT;"; }
' < Postnummerregister_ansi.txt > legg-inn-poststeder-ansi.sql
recode CP1252..UTF-8 < legg-inn-poststeder-ansi.sql > legg-inn-poststeder-utf-8.sql

Resultatet blir legg-inn-poststeder-ansi.sql og legg-inn-poststeder-utf-8.sql. Filene ble sist massert 2016-09-22.

Disse SQL-skriptene kan vi importere i SQL-terminalen vår og få populert tabellen med alle landets poststeder. Det er naturligvis nok å bruke én av disse filene.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>