使用环境:linux OpenSUSE

1)检查安装环境
(1) 查找DBI:zypper search DBI

安装DBI:zypper search perl-DBI
(2) 查找DBD Pg:zypper search DBD
安装DBD Pg:zypper install perl-DBD-Pg

2) 编写perl脚本:

#! /usr/bin/perl
use strict;
use Data::Dumper; --用于select返回数据集
use DBI;
my $driver="Pg";
my $database_name = "xxxx";
my $host = "localhost"; --"IP adrress"
my $port= "5432";
my $database ="dbi:$driver:dbname=$database_name;host=$host;port=$port"; -- 构造
my $db_user = "postgres"; --用户名
my $db_passwd = "postgres"; --密码
## 连接.
#my $dbh=DBI->connect("dbi:$driver:dbname=$database_name;host=$host;port=$port", $db_user, $db_passwd,{ RaiseError => 1, AutoCommit => 0 }) or die $DBI::errstr; --如果不构造前面的database,可以使用这句直接连接数据库。其中AutoCommit表示是否自动提交
my $dbh=DBI->connect($database,$db_user,$db_passwd) or die "can''t connect!"; -- 使用构造的database来连接数据库,AutoCommit默认为1
if ($dbh)
{ print "pgconnect ok! ";
print "my $dbh->port(); ";
}else{

print "pgconnect false! ";
print "my $dbh->port(); ";
}

my $sth = $dbh->prepare("select * from student " )or die "Syntax error:$! "; -- 查询
$sth->execute(); --执行

while(my $row=$sth->fetchrow_hashref()) --获取select的结果集
{
print Dumper($row);
}
my $sth = $dbh->prepare("insert into student values(3,'zhang','m') " )or die "Syntax error:$! "; --插入数据
$sth->execute();

my $sth = $dbh->prepare(qq{delete from student where id = 3})or die "Syntax error:$! "; --删除数据 $sth->execute(); $dbh->disconnect(); --关闭数据库