PostgreSQL に関するインストールメモ2(2002/02/24)
Perl上から直接データベースとお話できるインタフェースをもっているプログラムです。使用法は、とっても簡単です。お話できるデータベースは、 Oracle/Postgres/Sysbase/Informix.... ってな感じです。
1.DBI (v1.21) の設定をする。
% cd /opt/local/src
% wget http://www.cpan.org/authors/id/TIMB/DBI-1.21.tar.gz
% gzip -cd DBI-1.21.tar.gz | tar xf -
% cd DBI-1.21
% perl Makefile.PL
% make
% make test
% su
# make install2.DBD::Pg(v1.01) の設定をする。
postgresユーザで行う
% cd /opt/local/src
% wget http://www.cpan.org/authors/id/MERGL/DBD-Pg-1.01.tar.gz
% gzip -cd DBD-Pg-1.01.tar.gz | tar xf -
% cd DBD-Pg-1.01
% setenv POSTGRES_INCLUDE /opt/local/pgsql/include
% setenv POSTGRES_LIB /opt/local/pgsql/lib
% perl Makefile.PL
% make
% make test
% su
# make install3.うまく new Pg って Perl からよめない・・・なぜなんだ?? 答え→どうやら、postgres / Pg をインストールするときに失敗していたらしい。make は、必ず root で行うと良い (^^♪ 。
http://www.icefree.org/~vvp/pc/network/aplogpgsql.html
http://www.itboost.co.jp/inst/inst_09.php
http://www.itboost.co.jp/perl/perl_11.php4.うまくいった・・・。しかし相変わらず Pg が使えないなので DBI::Pg 経由・・・ 答え→インストールが失敗していたらしい。
#!/usr/bin/perl
use strict;
use DBI;
my ($dbh, $sth);
my ($data_source, $user_name, $sql);
my ($id, $name, $zip, $addr, $tel);
my ($ary, $num, $i);
$data_source = 'dbi:Pg:dbname=test';
$user_name = 'postgres';
$dbh = DBI->connect($data_source, $user_name) || die $dbh->errstr;
$sql = 'select * from t2';
$ary = $dbh->selectall_arrayref($sql) || die $dbh->errstr; $num = @$ary;
for ($i = 0; $i < $num; $i++) {
print "$ary->[$i][0], $ary->[$i][1]\n";
}
print "\n";
$dbh->disconnect();5.Pg からのアクセス経由方法です。
#!/usr/bin/perl
use Pg;
$dbname = "test";
$conn = Pg::connectdb("dbname=$dbname");
$res = $conn-> exec("select * from t2");
print "name telno email\n";
print "--------------------------------------\n";
while(@item = $res-> fetchrow) {
print "@item[0] @item[1]";
print ("\n");
}