perl连接oracle数据库
上一篇 / 下一篇 2014-05-09 14:58:35 / 个人分类:perl
#!/usr/bin/perl -w
use strict;
use DBI;
my $dbh;
my $sth;
my $rv;
my $in_caps;
my @count;
eval
{
# $dbh = DBI->connect("DBI:数据库类型(oracle;mysql):服务名,用户名,密码,RaiseError=>1);
$dbh = DBI->connect("DBI:Oracle:***", "***", "***", {RaiseError=>1,AutoCommit=>0});
if (!defined $dbh)
{
exit(-1);
}
my $sth = $dbh->prepare("select count(*) from HSC_SUBS_SERVICE");
if (!defined $sth)
{
exit(-2);
}
my $rv = $sth->execute;
if (!defined $rv)
{
exit(-3)
}
@count = $sth->fetchrow_array;
$in_caps = $count[0];
$sth->finish;
$dbh->disconnect;
print "$in_caps\n";
};
if ($@)
{
print $@;
}
可移植的DBI方法:
connect建立到一个数据库服务器的连接
disconnect断开数据库服务器的连接
prepare准备执行一个SQL语句
execute执行准备好的语句
do准备并执行一个SQL语句
quote加引号于要插入的字符串或BLOB值
fetchrow_array作为一个字段数组取出下一行
fetchrow_arrayref作为一个字段的引用数组取出下一行
fetchrow_hashref作为一个哈希表的引用取出下一行
fetchall_arrayref作为一个字段数组取出所有数据
finish完成一条语句并且让系统释放资源
rows返回受影响的行数
data_sources返回可在localhost上得到的数据库的数组
ChopBlanks控制fetchrow_*方法是否剥去空格
NUM_OF_PARAMS在准备的语句中的占位(placeholder-参数)的数目
NULLABLE其列可以是NULL
trace执行调试跟踪
##########################################################################
$dbh数据库句柄
$sth语句句柄
$rc返回代码(经常是一个状态)
$rv返回值(经常是一个行数)
##########################################################################
①connect($data_source, $username, $password)
使用connect方法使得一个数据库连接到数据源。$data_source值应该以DBI:driver_name:开始。以DBD::mysql驱动程序使用connect的例子:
$dbh = DBI->connect("DBI:mysql:$database", $user, $password);
$dbh = DBI->connect("DBI:mysql:$database:$hostname",
$user, $password);
$dbh = DBI->connect("DBI:mysql:$database:$hostname:$port",
$user, $password);
②disconnect
disconnect方法从数据库断开数据库句柄。它一般就在你从程序退出之前被调用。范例:
$rc = $dbh->disconnect;
prepare($statement)
准备一条由数据库引擎执行的SQL语句并且返回语句句柄($sth),你可以使用它调用execute方法。一般地你借助于prepare和execute来处理SELECT语句(和类SELECT语句,例如SHOW、DESCRIBE和EXPLAIN)。范例:
$sth = $dbh->prepare($statement)
or die "Can't prepare $statement: $dbh->errstr/n";
③execute
execute方法执行一个准备好的语句。对非SELECT语句,execute返回受影响的行数。如果没有行受影响,execute返回"0E0"
TAG: