Perl - CPAN - DBD::Pgパッケージ

ここに掲載するものは、塚本さんにパッケージ化して頂いているZaurus用Perl 5.6.1に追加でインストールするPerlライブラリのDBD::Pgである。
ソースはここからダウンロードし、dev-img-1.3でセルフコンパイルした。

download:lib-perl-dbd-pg_1.32-1_arm.ipk

このパッケージとDBIパッケージPostgreSQL 7.4.16Zaurusにインストールすれば、Perlによってデータベースにアクセスすることが可能になる。
現時点の最新DBD::Pgは1.49だが、最近のものはテストが正常に動作しないため、動作するバージョンで一番新しいものを採用した。
手始めの使い方は以下の通りである。
ただし、予め "createdb zaurus" コマンドでデータベースを作成済みであることが前提である。

# "ID<TAB>名前<TAB>年齢"のテキストをデータベースに登録
use DBI;
$dbh = DBI->connect("dbi:Pg:dbname=zaurus");
$tbl_name = "test2";
$create_tbl =<<__CREATE_TBL__;
    create table $tbl_name (
        id int,
        name varchar(40),
        age int
    )
__CREATE_TBL__
@tables = $dbh->tables;
$exist = 0;
foreach $name (@tables) {
    if ($name =~ /\.$tbl_name$/) {
        $exist = 1;
        last;
    }
}
if (!$exist) {
    $dbh->do($create_tbl) or die;
}
while (<>) {
    chomp;
    ($id, $name, $age) = split(/\t/);
        $id = int($id);
        $name = substr($name, 0, 40);
        $age = int($age);
    $insert = "insert into $tbl_name values ($id, '$name', $age)";
    $dbh->do($insert) or die;
}
END {
    $dbh->disconnect if $dbh;
}


DBD::Pgの詳細は以下をご覧頂きたい。

英語:http://search.cpan.org/~rudy/DBD-Pg-1.32/Pg.pm
日本語:http://perldoc.jp/docs/modules/DBD-Pg-1.22/Pg.pod