ITPub博客

首页 > Linux操作系统 > Linux操作系统 > perl DBD::oracle

perl DBD::oracle

原创 Linux操作系统 作者:perfychi 时间:2013-01-26 08:05:07 0 删除 编辑

一、安装需要的包

在linux下通过perl脚本直接访问oracle,需安装如下包:

perl-DBI http://search.cpan.org/~timb/DBI-1.621/ 

perl-DBD:;Oracle http://search.cpan.org/~pythian/DBD-Oracle-1.44/

如果是连接远程数据库还需要安装oracle instance client,http://www.oracle.com/technetwork/database/features/instant- client/index-097480.html,选择合适的版本,下载basic、sqlplus、sdk三个软件,解压即可

二、设定环境变量并建立TNSNAME文件

在.bash_profile文件里设环境变量

ORACLE_HOME=/****/instantclient_10_2                #设置为刚才解压的oracle instacne client 主目录

TNS_ADMIN=$ORACLE_HOME/network/admin

LD_LIBRARY_PATH=$ORACLE_HOME

echo ORACLE_HOME TNS_ADMIN LD_LIBRARY

在TNS_ADMIN下建立tnsnames.ora,内容为你需要连接的数据库的连接串

三、写个perl脚本测试

#!/usr/bin/perl

use DBI;
$sid="***";
$user="***";
$passwd="***";
$dbh = DBI->connect("dbi:Oracle:$sid","$user","$passwd") or die "can't connect to database ". DBI-errstr;
#连接数据库
$sth=$dbh->prepare("select tablespace_name,status from dba_tablespaces");
$sth->execute;
#执行sql语句
while (@recs=$sth->fetchrow_array) {
print $recs[0].":".$recs[1]."\n";
}
$dbh->disconnect;

执行脚本结果如下:

# perl ora_connect2.pl
SYSTEM:ONLINE
UNDOTBS:ONLINE
SYSAUX:ONLINE
TEMP:ONLINE
USERS:ONLINE
LISCODE:ONLINE
LIS:ONLINE
TS_LOGMNR:ONLINE
CALLERTBS:ONLINE
LISBASE:ONLINE
LISDATA:ONLINE
BJJH:ONLINE

四、一般出错都是环境变量设置问题,要不就是SID解析问题,关于perl DBD:;ORACLE的详细说明,可参考官方文档http://search.cpan.org/~pythian/DBD-Oracle-1.44/lib/DBD/Oracle.pm

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27042095/viewspace-753363/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: perl for DBI 测试
请登录后发表评论 登录
全部评论

注册时间:2012-06-06

  • 博文量
    484
  • 访问量
    2975641