perl DBD::oracle

一、安装需要的包

在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


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值