到: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中的临时数据过滤导入正式数据当中。
利用perl从oracle数据库中提取数据
compat-libcap1-1.10-7.el7.x86_64 compat-gcc-32-3.2.3-72.el7....oracle-database-preinstall-19c-1.0-1.el7.x86_64 perl-File-Slurp-9999.19-6.el7.noarch python3-3.6.8-17.el7.x86_64 rlwrap-0.45.2-2.el7.x86_64
perl DBD-Oracle-1.22,连接oracle数据库驱动。
从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员),有两个内容你必须去弄清楚。第一个内容是如何成为一个Oracle Applications DBA(Oracle应用程序...
perl连接oracle数据库的模块包
Oracle 调用接口 (OCI) 是最全面、性能最高、基于原生“C”语言的 Oracle 数据库接口,它可以提供 Oracle 数据库的全部功能。OCI 为构建各种语言专用接口(如 Oracle JDBC-OCI、ODP.Net、Oracle 预编译器、Oracle ...
perl的oracle支持,客户端应用连接到oracle数据库需要该驱动,不然不能正常的连接oracle数据库。
LINUX 安装perl 组件所需安装包 主要适用于 连接ORACLE 数据库,亲测有效; DBD-Oracle-1.74 DBI-1.636 perl-5.20.2 安装范文的话,网上搜搜都有的
Perl access oracle database using dbi module
sample schemas创建与安装示例库脚本, Oracle 12CR2中在创建数据库时不能安装sample schemas。创建sample schemas只需执行db-sample-schemas-12.2.0.1目录下的mksample.sql脚本,mksample EXAMPLE TEMP $ORACLE_...
连接数据库是一个很常见也很必须的操作。先将我用到的总结一下。 1. Perl 连接数据库 Perl 连接数据库的思路都是: 1)使用DBI模块; 2)创建数据库连接句柄dbh; 3)利用dbh创建语句句柄sth; 4)利用sth...
RDA用于收集、分析oracle数据库,运行该工具不会改变系统的任何参数;RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作。 一般Oracle 原厂的人巡检使用RDA工具。 在MOS 上创建SR(Service ...
Oracle调用接口(OCI)是针对自定义或打包应用程序的Oracle数据库的全面,高性能本机C语言接口。 OCI非常可靠。SQL * Plus,Real Application Testing(RAT),SQL * Loader和Data-Pump等Oracle工具都使用OCI。OCI...
本书涵盖了我认为最重要的一些内容,即Oracle数据库及其体系结构。我也可以写一本书名类似的其他方面的书,向你解释如何用一种特定的语言和体系结构开发应用程序。例如,我可以告诉你如何使用JavaServer Pages(JSP...
ora2pg:Ora2Pg是一个免费工具,用于将Oracle数据库迁移到PostgreSQL兼容模式。 它连接您的Oracle数据库,自动对其进行扫描并提取其结构或数据,然后生成可加载到PostgreSQL中SQL脚本。
15.5.5 范例15-6:ex6.pl Oracle上persons.sql的Perl ADO,无DSN 15.5.6 范例15-7:ex7.pl Oracle上的Perl DBI简单查询 15.5.7 范例15-8:ex8.ploracle上persons.sql的Perl DBI 15.6 练习:非编程 ...
如果你从事任何系统管理方面的工作,就必须应对日益复杂的工作环境以及对你的时间...* 使用DBI管理数据库,包括MySQL、MS SQL和Oracle * 处理LDAP和Active Directory等目录服务 * 编写脚本管理电子邮件协议和垃圾邮件
使用dbi管理数据库,包括mysql、ms sql和oracle 处理ldap和active directory等目录服务 编写脚本管理电子邮件协议和垃圾邮件 高效地创建、处理和分析日志文件 管理网络名称和配置服务,包括nis、dns和dhcp...
集成环境下perl oracle环境下测试了一下相关的连接 使用的是集成工具