DBI
DBD::ODBCにはDBIも必要ですが、
再構築したcolinux環境には、まだインストールしていなかったのでインストールします。
$ export LANG=C $ cd DBI-1.604 $ /usr/local/bin/perl Makefile.PL $ make $ make test # make install
※「export LANG=C」 って、以前のDBIにも行ったかな?
デフォルトのLANGでは、perl Makefile.PL時に次のようなメッセージが表示されます。
この為、今回はLANG=Cに設定してインストールを行いました。
$ /usr/local/bin/perl Makefile.PL Useless use of private variable in void context at Makefile.PL line 524. Your LANG environment variable is set to "ja_JP.UTF-8" This is known to cause problems in some perl installations - even stopping this Makefile.PL to run without errors. If you have problems please try re-running with LANG unset or with the utf part of LANG removed.
DBD::ODBC
unixODBCはデフォルトでmakeしたので、/usr/localにインストールされています。
もし、unixODBC を /usr/local 以外にインストールしたのであれば、
次のように環境変数:ODBCHOMEを設定します。
export ODBCHOME=/usr/local ←このpathを変更
後は、通常のinstall手順と同様に行います。
$ cd DBD-ODBC-1.15 $ /usr/local/bin/perl Makefile.PL $ make $ make test # make install
test script
#!/usr/local/bin/perl use strict; use DBI; my $DATA_SRC = "dbi:ODBC:pg_test"; my $DB_USER = "postgres"; my $DB_PASSWD = undef; my $dbh = DBI->connect($DATA_SRC, $DB_USER, $DB_PASSWD) or die "Can't connect to $DATA_SRC $DB_USER $DB_PASSWD"; my $sql =<<EOF; select * from test EOF my $sth = $dbh->prepare($sql) or die "Can't prepare statement"; $sth->execute(); while ( my @row = $sth->fetchrow_array ) { print "@row\n"; } $dbh->disconnect;
↑こんな感じのスクリプトだと、↓こんな感じ
$ ./foo.pl Tokyo Shinjuku Fukuoka Fukuoka Kanagawa 横浜