ActivePerl版如下

基本上follow ReadMe.win32就可以了。如果报无法load Oracle.dll错
VS 2008的情况要把redist下面的dll放到PATH里
如果再报R6034错
运行mt.exe –manifest Oracle.dll.manifest -outputresource:Oracle.dll;2
把manifest加入Oracle.dll


Cygwin版如下

由于众所周知的原因,DBD::Oracle不再提供dist版,而需要手动编译。

这里列出安装步骤
0.首先需要在cpan安装DBI

1.运行Impdef.exe
    Impdel.exe oci.def oci.dll

2.取到oci.def到cygwin下运行
   
    dlltool --def oci.def --output-lib liboci.a -k

3.拷贝liboci.a到/usr/lib下和DBD::Oracle解压缩目录下

4.设置LD_RUN_PATH,这里是Oracle 10g

  export LD_RUN_PATH='你的Oracle目录/client_1/LIB:你的Oracle目录/client_1/RDBMS/XA'

5.在DBD::Oracle解压缩目录下运行
 
  perl MakeFile.pl

6 运行make

7 运行make install

安装完成,写一段Perl测试一下
#!/usr/bin/perl

use DBI;

$dbname="XXX";
$user="XX";
$passwd="XX";
$dbh="";

$dbh = DBI->connect("dbi:Oracle:$dbname",$user,$passwd) or die "can't connect to database ". DBI-errstr;
$sth=$dbh->prepare("select sysdate from dual");
$sth->execute;
while (@recs=$sth->fetchrow_array) {
    
print $recs[0]."\n";
}
$dbh->disconnect;

如果正确的print出了sysdate就说明Ok拉