TOPへ  |  サービス利用方法(wiki)  |  雑談板  |  質問板(掲示板)  |  日記(はてな)  |  FileUpBoard  |  ゲストブック  |  i-shot  |  チャット  |  サーバー状態  |  リンク
Control Panel (SSL)  |   | 

« ネットワーク図 | メイン | 概要・申し込み »

2004年03月17日

PostgreSQLに郵便番号情報を追加その1

 アカウントマネージャを作るのにPostgreSQLを使用したので、郵便番号のデータベースを作ってみることにしました(とはいっても本当はアカウントマネージャにくっつける為に即席で作っただけです)。
 郵政公社のページ(ttp://www.japanpost.jp/)(リンク張ったら連絡しろとか面倒なことが書いてあるのでしません)の、郵便番号検索というところからCSVファイルのあるページにたどり着けます。

カタカナのタイプがあるようですが、私はどちらでもよかったので促音・拗音を小書きにしているほうを取ってきました(結局読み仮名使っていません)。
テキストエディタで開くと約12万行ほどあることが分かります。このままで使い勝手が悪いのは確かです。
そこで、CSVファイルが準備できたところでDBに追加することにします。
ここではPostgreSQLを使用します。

以下に示すSQL文をDBを用意してpsqlなりを使って実行してください。
CREATE TABLE yuubintbl (
oldbangou character(5),
newbangou character(7),
kenmei character varying(10),
simei character varying(128),
chomei character varying(128)
);

simeiとかとても滅茶苦茶な名前ですが、とりあえず郵便番号→住所を引くことをメインに考えているのでこれでも良いでしょう。

そして、いよいよDBにデータを追加します。CSVファイルなので処理は楽だと思いますが参考までに私の手抜きプログラムを以下に紹介します。

ソース

libpq-fe.hが必要です。PostgreSQLのソースのパッケージの中に入っています。
コンパイルは $ g++ yuubindb.cpp -o yuubindb -L /usr/local/pgsql/lib -lpq -I /usr/local/pgsql/include とでも入れてやれば行けます(PostgreSQLをソースから入れてあれば)。

実行は $ ./yuubin CSVFilename DatabaseName Tablename といったところです。
数分かかり正常に追加できました。

この追加では住所→番号に使うには不十分ですが、郵便番号→住所を引くだけなら使えます。
そのうち実用になるものを作ろうと思います。
検索する側は今回載せていませんが、実用段階のものを作ったら一緒に載せるつもりでいます。
と言うわけで第1弾でした。

投稿者 xabre : 2004年03月17日 00:49

コメント

ずっと私に合ったサーバーを探していました。
概要を読み、条件がとても惹かれました。
登録を希望します。

投稿者 穂積 楓 : 2007年05月13日 14:14

コメントしてください




保存しますか?


Copyright © 2003-2008 PF-X.NET All rights reserved.