到:http://search.cpan.org/~timb/DBI-1.613/lib/DBI/DBD/SqlEngine.pm
下载DBI-1.6
和到:http://search.cpan.org/~pythian/DBD-Oracle-1.21/
下载DBD-Oracle-1.21
[root@localhost ~]# tar zxvf DBI-1.613.tar.gz
[root@localhost ~]# cd DBI-1.613
[root@localhost DBI-1.613]# perl Makefile.PL
[root@localhost DBI-1.613]#make
[root@localhost DBI-1.613]#make install
[root@localhost ~]#cd
[root@localhost ~]# tar zxvf DBD-Oracle-1.21.tar.gz
[root@localhost ~]# cd DBD-Oracle-1.21
在oracle的HOME目录下的.bash_profile最后加上export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib:$LD_LIBRARY_PATH
[root@localhost DBD-Oracle-1.21]# . /home/db/oracle/.bash_profile
[root@localhost DBD-Oracle-1.21]# perl Makefile.PL
[root@localhost DBD-Oracle-1.21]#make
[root@localhost DBD-Oracle-1.21]#make install
若报如下错误:
nstall_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for mod
ule DBD::Oracle:
解决方案如下:
# echo /u01/app/oracle/product/10.2.0/db_1/lib >> /etc/ld.so.conf
# echo /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle >> /etc/ld.so.conf
# ldconfig
# ldd /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so
查看lib包的相关性是否正常
我的测试数据如下:
建表与插入数据
create table BOOKS
(
ISBN VARCHAR2(13) not null,
TITLE VARCHAR2(200),
SUMMARY VARCHAR2(2000),
AUTHOR VARCHAR2(200),
DATE_PUBLISHED DATE,
PAGE_COUNT NUMBER
);
insert into books (ISBN, TITLE, SUMMARY, AUTHOR, DATE_PUBLISHED, PAGE_COUNT)
values ('0-596-00977-1', 'Oracle PL/SQL Programming', 'For the past ten years, Oracle PL/SQL Programming has been the bestselling book on PL/SQL', 'Steven Feuerstein', to_date('01-09-2010 17:45:07', 'dd-mm-yyyy hh24:mi:ss'), 700);
insert into books (ISBN, TITLE, SUMMARY, AUTHOR, DATE_PUBLISHED, PAGE_COUNT)
values ('0-13-238182-6', 'Perl by Example', 'Perl by Example, Fourth Edition, is the easiest, most hands-on way to learn Perl.', 'Ellie Quigley', to_date('01-09-2010 18:29:56', 'dd-mm-yyyy hh24:mi:ss'), 600);
commit;
使用到的函数:
CREATE OR REPLACE FUNCTION booktitle (isbn_in IN VARCHAR2)
RETURN VARCHAR2
IS
l_isbn books.title%TYPE;
CURSOR icur IS SELECT title FROM books WHERE isbn = isbn_in;
BEGIN
OPEN icur;
FETCH icur INTO l_isbn;
CLOSE icur;
RETURN l_isbn;
END;
/
callbook.pl的 perl脚本如下:
#!/usr/bin/perl
use strict;
use DBI qw(:sql_types);
# either make the connection or DIE
my $dbh = DBI->connect(
'dbi:Oracle:db',
'scott',
'tiger',
{
RaiseError => 1,
AutoCommit => 0
}
) || die "Database connection not made: $DBI::errstr";
my $retval;
# make parse call to oracle, get statement handle
eval {
my $func = $dbh->prepare(q{
BEGIN
:retval := booktitle(isbn_in => :bind1);
END;
});
# bind the parameters and execute
$func->bind_param(":bind1", "0-13-238182-6");
$func->bind_param_inout(":retval", \$retval, SQL_VARCHAR);
$func->execute;
};
if( $@ ) {
warn "Execution of stored procedure failed: $DBI::errstr\n";
$dbh->rollback;
} else {
print "Execution of stored procedure returned: $retval\n";
}
# don't forget to disconnect
$dbh->disconnect;
其中:
'dbi:Oracle:db',
'scott',
'tiger',
的db为数据库SID,scott和tiger为用户名和密码
启动数据库和监听器后,在oracle用户下执行perl脚本:
$perl callbook.pl
分享到:
相关推荐
oracle数据库同步perl脚本示例 其中有2个文件,一个是 perl同步脚本,另一个是存储过程; 大致思路是:perl脚本从数据库A同步数据至库B的临时表中,再通过存储过程将库B中的临时数据过滤导入正式数据当中。
5. **日志管理和错误处理**:Perl提供了良好的日志记录机制,DBAs可以方便地记录数据库操作的日志,以便追踪问题和优化过程。同时,Perl的错误处理机制可以帮助识别和修复脚本中的错误。 6. **数据库性能调优**:...
在Windows NT操作系统环境下,使用Perl语言来访问Oracle数据库是一项常见的任务。这个压缩包"NT下Perl访问Oracle所需模块.rar"包含了一系列必要的Perl模块,这些模块是实现Perl与Oracle交互的基础。下面将详细介绍...
DBD::Oracle是Perl的一个数据库驱动模块,它允许Perl脚本连接到Oracle数据库并执行SQL查询和其他数据库操作。 首先,Perl是一种强大的文本处理和脚本编程语言,广泛用于系统管理、网络编程和Web开发等领域。它的...
最后,书中可能还会涵盖一些自动化和脚本编写技巧,如使用shell脚本来自动化日常任务,或者利用Perl、Python等语言进行更复杂的数据库操作。这将帮助DBA提高工作效率,减少人为错误。 总的来说,“Unix和Linux下的...
从 Oracle 10g 开始,Oracle 内建了符合 IEEE POSIX (Portable Operating System for Unix)标准的正则表达式,同时也支持 Perl 的正则表达式规则。 正则表达式的组成 ----------------- 正则表达式由一个或多个...
在IT领域,Unix和Linux操作系统是企业级Oracle数据库管理的常用平台。Oracle数据库因其稳定性、高性能和可扩展性,被广泛应用于大型企业及关键业务系统。本篇文章将深入探讨在Unix(包括AIX)和Linux环境下Oracle...
需要注意的是,虽然DBI模块为Perl提供了强大的数据库操作能力,但使用时还需注意数据库的安全性问题。例如,在编写代码时应避免SQL注入漏洞,确保传入的参数值经过适当的验证和转义处理。 此外,操作数据库时应考虑...
本文档基于腾讯云服务器环境,详细介绍了从操作系统配置到Oracle数据库安装的全过程。 #### 二、操作系统配置 1. **去除不必要的组件** - 在“基本系统”中移除Java和Perl。 - 在“应用程序”中选择Emacs和互联网...
Perl DBD-Oracle-1.22 是一个Perl编程语言中的数据库驱动模块,它使得Perl程序能够与Oracle数据库进行交互。这个模块是DBI(Database Independent Interface)的一部分,DBI是Perl中广泛使用的数据库接口标准,它...
Oracle RDA 数据库诊断调优工具配置使用手册 Oracle RDA 是一款功能强大的数据库诊断调优工具,旨在帮助数据库管理员快速诊断和优化 Oracle 数据库的性能。下面是 Oracle RDA 数据库诊断调优工具的配置使用手册。 ...
这个版本的DBD(Database Driver)专为Oracle数据库设计,允许开发人员使用Perl语言编写脚本来执行查询、更新和其他数据库操作。在本文中,我们将深入探讨DBD-Oracle的特性、安装过程、使用方法以及其在实际应用中的...
Oracle培训中的Perl编程教程是一门深入浅出的课程,旨在帮助IT专业人士掌握使用Perl语言在Oracle数据库环境中进行高效开发和管理的技能。Perl是一种强大的文本处理语言,特别适合于处理和解析大量的数据,因此在...
Oracle数据库是全球知名的信息管理软件,由Oracle公司开发并提供,该公司是世界上最大的数据库管理系统供应商之一,也是第二大独立软件公司。Oracle自1989年进入中国市场以来,已在中国的多个城市设立办事处,并在...
它连接Oracle数据库,自动扫描并提取其结构或数据,然后生成可以加载到PostgreSQL数据库中的SQL脚本。 二、Ora2PG功能 Ora2PG可以支持大多数SQL的转换,但某些情况下仍需要人工校正语法,使其兼容PostgreSQL。其...
例如,DBD::mysql是用于连接MySQL数据库的DBD驱动,DBD::Oracle用于Oracle数据库,DBD::SQLite用于SQLite数据库。在本案例中,"dbd unixodbc"提到了ODBC(Open Database Connectivity),这是另一种数据库连接标准,...