Fork me on GitHub

Perl Pg+ +perl+extension+for+postgresql

  • Oct 31, 2006

categoryプラグインは存在しません。

Pg - Perl5 extension for PostgreSQL

Perlから、PostgreSQLに接続するためのライブラリ。

ダウンロード

CPANからダウンロード。

http://search.cpan.org/~mergl/pgsql_perl5-1.9.0/

インストール

解凍して、

perl Makefile.PL
make
make install

でインストール。

Cygwinでは、何故か typemap ファイルが読み込めない場合があるので、Cygwinのルートディレクトリにコピーして、Makefile中のtypemapファイルのパスを

/typemap

などと書き換えるとうまくいく。

接続

PostgreSQLに接続するには、

use Pg;
my $conn = Pg::connectdb("dbname=template1");

とする。ローカルのDBを利用する場合は、dbnameのみ指定すれば接続できる。

指定できるオプションは、以下の通り。

パラメータ デフォルト 内容
dbname current userid 接続するデータベース名
host localhost 接続先ホスト
port 5432 接続先ポート番号
user current userid 接続に利用するユーザID
password パスワード

SQL実行

SQLは、

my $result = $conn->exec("SELECT * FROM table");

と実行する。成功すれば、

$conn->status

が0になる。

SELECTの検索結果を取得する場合は、

my @row = $result->fetchrow

とすると、SELECT で指定したフィールドが $row[0] などで取得できる。

fetchrow を繰り返すことで、結果を順番に取得できる。そ[email protected]

$result->ntuples
レコード数を取得する。
$result->nfields
フィールド数を取得する。
$result->fnumber($field_name)
フィールド番号に対応するフィールド名を取得する。
$result->getvalue($tup_num, $field_num)
検索結果の$tup_num番目のレコードの$field_num番目のフィールドの値を取得する。バイナリデータの場合は動作しない。
$result->resultStatus
SQLの実行結果を取得する。
実行結果
PGRES_EMPTY_QUERY
PGRES_COMMAND_OK
PGRES_TUPLES_OK
PGRES_COPY_OUT
PGRES_COPY_IN
PGRES_BAD_RESPONSE
PGRES_NONFATAL_ERROR
PGRES_FATAL_ERROR

参考リンク