你的位置:首页 > 操作系统

[操作系统]Linux安装DBI/DBD


本文只是学习如何配置PERL DBI、PERL DBD时,整理的一个学习实践文档,大部分参考网上资料,详情请见下面参考资料。

PERL对数据库的支持广而且全,几乎所有的主流数据库都有与之相应的PERL模块支持。为了开发可在不同数据库上移植的PERL应用,DBI(DataBase Interface)模块应运而生,使用这个模块,应用只需使用统一的接口便能操作不同的数据库,真正实现了可移植;当然,这个DBI也配备有相应的开关来支持不同数据库的各种特性。

DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动。对MySql来说,有DBD::Mysql, 而对ORACLE来说,则是DBD::Oracle。其中的DBD这是DataBase Driver的简写。

安装顺序是先装DBI,再装DBD::Oracle,DBD::Oracle模块不是Oracle官方开发的,而是由Pythian Group这个很有名的DBA咨询公司组织专人开发,目前的最新版本是1.74,主页在http://www.pythian.com/resources/dba-resources/dbdoracle-project/,读者可以到那里找到关于此模块的最新动态。

1:检查当前系统的Perl版本

[root@getlnx01 ~]# perl -v
 
This is perl, v5.8.8 built for x86_64-linux-thread-multi
 
Copyright 1987-2006, Larry Wall
 
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
 
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


 

2: 检查验证系统中安装了哪些Perl modules

check.pl脚本

#!/usr/bin/perl
use strict;
use ExtUtils::Installed;
 
my $inst=ExtUtils::Installed->new();
 
my @modules = $inst->modules();
 
foreach(@modules){
        my $ver = $inst->version($_) || "???";
        printf("%-12s -- %s\n",$_,$ver);
}
 
exit;
 
[root@getlnx01 tmp]# chmod +x check.pl 
[root@getlnx01 tmp]# perl check.pl 
Perl         -- 5.8.8


clip_image001

 

3:具体安装步骤

[root@getlnx01 tmp]# tar xvf DBI-1.627.tar 
 
[root@getlnx01 tmp]# cd DBI-1.627
 
[root@getlnx01 DBI-1.627]# perl Makefile.PL 
 
[root@getlnx01 DBI-1.627]# make
 
[root@getlnx01 DBI-1.627]# make test
 
[root@getlnx01 DBI-1.627]# make install


 

clip_image002

 

二: 安装DBD-ORACLE组件,安装步骤简单如下所示:

 

[root@getlnx01 DBI-1.627]# cd /tmp
[root@getlnx01 tmp]# tar zxf DBD-Oracle-1.64.tar 
[root@getlnx01 tmp]# cd DBD-Oracle-1.64
[root@getlnx01 DBD-Oracle-1.64]# export  ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1; 
[root@getlnx01 DBD-Oracle-1.64]# export PATH=$ORACLE_HOME/bin:$PATH; 
[root@DB-Server DBD-Oracle-1.64]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
[root@DB-Server DBD-Oracle-1.64]# perl Makefile.PL 


[root@getlnx01 DBD-Oracle-1.64]#  perl Makefile.PL 
Using DBI 1.627 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
 
Configuring DBD::Oracle for perl 5.008008 on linux (x86_64-linux-thread-multi)
 
Remember to actually *READ* the README file! Especially if you have any problems.
 
Installing on a linux, Ver#2.6
Using Oracle in /u01/app/oracle/product/10.2.0/db_1
DEFINE _SQLPLUS_RELEASE = "1002000400" (CHAR)
Oracle version 10.2.0.4 (10.2)
Found /u01/app/oracle/product/10.2.0/db_1/rdbms/demo/demo_rdbms.mk
Found /u01/app/oracle/product/10.2.0/db_1/rdbms/demo/demo_rdbms64.mk
Found /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk
Using /u01/app/oracle/product/10.2.0/db_1/rdbms/demo/demo_rdbms.mk
Your LD_LIBRARY_PATH env var is set to '/u01/app/oracle/product/10.2.0/db_1/lib:/lib:/usr/lib'
Reading /u01/app/oracle/product/10.2.0/db_1/rdbms/demo/demo_rdbms.mk
Reading /u01/app/oracle/product/10.2.0/db_1/rdbms/lib/env_rdbms.mk
 
Attempting to discover Oracle OCI build rules
gcc    -c -o DBD_ORA_OBJ.o DBD_ORA_OBJ.c
by executing: [make -f /u01/app/oracle/product/10.2.0/db_1/rdbms/demo/demo_rdbms.mk build ECHODO=echo ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS= EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o]
Oracle oci build command:
        [true -L/u01/app/oracle/product/10.2.0/db_1/lib/ -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh   `cat /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm  -lpthread]
 
Found header files in /u01/app/oracle/product/10.2.0/db_1/rdbms/public.
 
client_version=10.2
 
 
DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.2.0.4\" -DORA_OCI_102
 
 
Checking for functioning wait.ph
 
 
System: perl5.008008 linux ca-build9.us.oracle.com 2.6.20-1.3002.fc6xen #1 smp thu apr 30 18:08:39 pdt 2009 x86_64 x86_64 x86_64 gnulinux 
Compiler:   gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
Linker:     /usr/bin/ld
Sysliblist: -ldl -lm -lpthread -lnsl -lirc 
Oracle makefiles would have used these definitions but we override them:
  CC:       cc
  CFLAGS:   $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
        $(SHARED_CFLAG) $(USRFLAGS)
           [$(GFLAG) -O3 $(CDEBUG) -m32 $(TRIGRAPHS_CCFLAGS) -fPIC -I/u01/app/oracle/product/10.2.0/db_1/rdbms/demo -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/plsql/public -I/u01/app/oracle/product/10.2.0/db_1/network/public -DLINUX -D_GNU_SOURCE -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS -fno-strict-aliasing $(LPFLAGS) $(USRFLAGS)]
  LDFLAGS:  $(LDFLAGS32)
           [-m32 -o $@ -L/u01/app/oracle/product/10.2.0/db_1/rdbms//lib32/ -L/u01/app/oracle/product/10.2.0/db_1/lib32/ -L/u01/app/oracle/product/10.2.0/db_1/lib32/stubs/]
Linking with OTHERLDFLAGS = -L/u01/app/oracle/product/10.2.0/db_1/lib/ -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/   -lclntsh   `cat /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm  -lpthread [from 'build' rule]
 
WARNING: META_MERGE is not a known parameter.
Checking if your kit is complete...
Looks good
'META_MERGE' is not a known MakeMaker parameter name.
LD_RUN_PATH=/u01/app/oracle/product/10.2.0/db_1/lib:/u01/app/oracle/product/10.2.0/db_1/rdbms/lib
Using DBD::Oracle 1.64.
Using DBD::Oracle 1.64.
Using DBI 1.627 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/
Writing Makefile for DBD::Oracle
 
***  If you have problems...
     read all the log printed above, and the README and README.help.txt files.
     (Of course, you have read README by now anyway, haven't you?)
 
[root@getlnx01 DBD-Oracle-1.64]# 


 

[root@getlnx01 DBD-Oracle-1.64]# make
cp lib/DBD/Oracle/Troubleshooting/Cygwin.pod blib/lib/DBD/Oracle/Troubleshooting/Cygwin.pod
cp lib/DBD/Oracle.pm blib/lib/DBD/Oracle.pm
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp lib/DBD/Oracle/Troubleshooting/Vms.pod blib/lib/DBD/Oracle/Troubleshooting/Vms.pod
cp lib/DBD/Oracle/Troubleshooting/Hpux.pod blib/lib/DBD/Oracle/Troubleshooting/Hpux.pod
cp lib/DBD/Oracle/Troubleshooting/Linux.pod blib/lib/DBD/Oracle/Troubleshooting/Linux.pod
cp lib/DBD/Oracle/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm
cp lib/DBD/Oracle/Troubleshooting.pod blib/lib/DBD/Oracle/Troubleshooting.pod
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp lib/DBD/Oracle/Troubleshooting/Sun.pod blib/lib/DBD/Oracle/Troubleshooting/Sun.pod
cp lib/DBD/Oracle/Troubleshooting/Macos.pod blib/lib/DBD/Oracle/Troubleshooting/Macos.pod
cp lib/DBD/Oracle/Object.pm blib/lib/DBD/Oracle/Object.pm
cp lib/DBD/Oracle/Troubleshooting/Aix.pod blib/lib/DBD/Oracle/Troubleshooting/Aix.pod
cp lib/DBD/Oracle/Troubleshooting/Win64.pod blib/lib/DBD/Oracle/Troubleshooting/Win64.pod
cp lib/DBD/Oracle/Troubleshooting/Win32.pod blib/lib/DBD/Oracle/Troubleshooting/Win32.pod
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
/usr/bin/perl -p -e "s/~DRIVER~/Oracle/g" /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/Driver.xst > Oracle.xsi
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap  Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
gcc -c  -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/rdbms/demo -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/plsql/public -I/u01/app/oracle/product/10.2.0/db_1/network/public -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.64\" -DXS_VERSION=\"1.64\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.2.0.4\" -DORA_OCI_102 Oracle.c
gcc -c  -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/rdbms/demo -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/plsql/public -I/u01/app/oracle/product/10.2.0/db_1/network/public -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.64\" -DXS_VERSION=\"1.64\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.2.0.4\" -DORA_OCI_102 dbdimp.c
dbdimp.c: In function ‘fb_ary_cb_alloc’:
dbdimp.c:324: warning: comparison is always false due to limited range of data type
dbdimp.c:325: warning: comparison is always false due to limited range of data type
dbdimp.c:326: warning: comparison is always false due to limited range of data type
dbdimp.c:327: warning: comparison is always false due to limited range of data type
dbdimp.c:328: warning: comparison is always false due to limited range of data type
dbdimp.c: In function ‘fb_ary_alloc’:
dbdimp.c:344: warning: comparison is always false due to limited range of data type
dbdimp.c:345: warning: comparison is always false due to limited range of data type
dbdimp.c:346: warning: comparison is always false due to limited range of data type
dbdimp.c:347: warning: comparison is always false due to limited range of data type
gcc -c  -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/rdbms/demo -I/u01/app/oracle/product/10.2.0/db_1/rdbms/public -I/u01/app/oracle/product/10.2.0/db_1/plsql/public -I/u01/app/oracle/product/10.2.0/db_1/network/public -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic   -DVERSION=\"1.64\" -DXS_VERSION=\"1.64\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.2.0.4\" -DORA_OCI_102 oci8.c
oci8.c: In function ‘ora_blob_read_mb_piece’:
oci8.c:1802: warning: comparison is always false due to limited range of data type
oci8.c: In function ‘describe_obj_by_tdo’:
oci8.c:3254: warning: comparison is always false due to limited range of data type
oci8.c: In function ‘ora_describe’:
oci8.c:3478: warning: comparison is always false due to limited range of data type
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
gcc  -shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic Oracle.o dbdimp.o oci8.o -L/u01/app/oracle/product/10.2.0/db_1/lib/ -L/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/   -lclntsh   `cat /u01/app/oracle/product/10.2.0/db_1/lib/sysliblist` -ldl -lm  -lpthread -o blib/arch/auto/DBD/Oracle/Oracle.so       \
                \
          
chmod 755 blib/arch/auto/DBD/Oracle/Oracle.so
cp Oracle.bs blib/arch/auto/DBD/Oracle/Oracle.bs
chmod 644 blib/arch/auto/DBD/Oracle/Oracle.bs
Manifying blib/man3/DBD::Oracle::Troubleshooting.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Cygwin.3pm
Manifying blib/man3/DBD::Oracle.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Sun.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Hpux.3pm
lib/DBD/Oracle/Troubleshooting/Hpux.pod:971: Unknown command paragraph "=itme 3 Add the following line: "
lib/DBD/Oracle/Troubleshooting/Hpux.pod:995: Unmatched =back
Manifying blib/man3/DBD::Oracle::Troubleshooting::Macos.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Vms.3pm
Manifying blib/man3/DBD::Oracle::Object.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Aix.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Linux.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Win64.3pm
Manifying blib/man3/DBD::Oracle::Troubleshooting::Win32.3pm
Manifying blib/man3/DBD::Oracle::GetInfo.3pm


 

[root@getlnx01 DBD-Oracle-1.64]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/000-report-versions-tiny....Test::More version 0.88 required--this is only version 0.62 at t/000-report-versions-tiny.t line 3.
BEGIN failed--compilation aborted at t/000-report-versions-tiny.t line 3.
# Looks like your test died before it could output anything.
t/000-report-versions-tiny....dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/00versions..................Bareword found where operator expected at t/00versions.t line 32, near "$ export ORACLE_USERID"
        (Missing operator before ORACLE_USERID?)
Scalar found where operator expected at t/00versions.t line 33, near "$ export"
        (Missing semicolon on previous line?)
Bareword found where operator expected at t/00versions.t line 33, near "$ export ORACLE_DSN"
        (Missing operator before ORACLE_DSN?)
Semicolon seems to be missing at t/00versions.t line 34.
"my" variable $dbh masks earlier declaration in same scope at t/00versions.t line 37.
"my" variable $sth masks earlier declaration in same scope at t/00versions.t line 38.
syntax error at t/00versions.t line 26, near "Can't connect"
"use" not allowed in expression at t/00versions.t line 29, at end of line
Global symbol "$export" requires explicit package name at t/00versions.t line 32.
Global symbol "$export" requires explicit package name at t/00versions.t line 33.
Bareword "note" not allowed while "strict subs" in use at t/00versions.t line 23.
Execution of t/00versions.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/00versions..................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-2
        Failed 2/2 tests, 0.00% okay
t/01base......................ok                                             
t/10general...................syntax error at t/10general.t line 123, near "note sprintf"
Execution of t/10general.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/10general...................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/12impdata...................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/12impdata.t line 25.
# Looks like your test died before it could output anything.
t/12impdata...................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/14threads...................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/14threads.t line 30.
# Looks like your test died before it could output anything.
t/14threads...................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/15nls.......................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/15nls.t line 9.
# Looks like your test died before it could output anything.
t/15nls.......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/20select....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/20select.t line 10.
# Looks like your test died before it could output anything.
t/20select....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/21nchar.....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/21nchar.t line 9.
# Looks like your test died before it could output anything.
t/21nchar.....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/22nchar_al32utf8............String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/22nchar_al32utf8.t line 12.
# Looks like your test died before it could output anything.
t/22nchar_al32utf8............dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/22nchar_utf8................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/22nchar_utf8.t line 12.
# Looks like your test died before it could output anything.
t/22nchar_utf8................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/23wide_db...................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/23wide_db.t line 12.
# Looks like your test died before it could output anything.
t/23wide_db...................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/23wide_db_8bit..............String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/23wide_db_8bit.t line 12.
# Looks like your test died before it could output anything.
t/23wide_db_8bit..............dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/23wide_db_al32utf8..........String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/23wide_db_al32utf8.t line 12.
# Looks like your test died before it could output anything.
t/23wide_db_al32utf8..........dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/24implicit_utf8.............String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/24implicit_utf8.t line 9.
# Looks like your test died before it could output anything.
t/24implicit_utf8.............dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/25plsql.....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/25plsql.t line 9.
# Looks like your test died before it could output anything.
t/25plsql.....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/26exe_array.................Unquoted string "note" may clash with future reserved word at t/lib/ExecuteArray.pm line 305.
String found where operator expected at t/lib/ExecuteArray.pm line 305, near "note "  Not all param arrays the same size""
        (Do you need to predeclare note?)
Unquoted string "note" may clash with future reserved word at t/lib/ExecuteArray.pm line 316.
String found where operator expected at t/lib/ExecuteArray.pm line 316, near "note "  Not all param arrays the same size with bind on execute_array""
        (Do you need to predeclare note?)
Unquoted string "note" may clash with future reserved word at t/lib/ExecuteArray.pm line 326.
String found where operator expected at t/lib/ExecuteArray.pm line 326, near "note "  no parameters""
        (Do you need to predeclare note?)
"my" variable $sth masks earlier declaration in same scope at t/lib/ExecuteArray.pm line 375.
"my" variable @pe1 masks earlier declaration in same scope at t/lib/ExecuteArray.pm line 376.
syntax error at t/lib/ExecuteArray.pm line 305, near "note "  Not all param arrays the same size""
syntax error at t/lib/ExecuteArray.pm line 316, near "note "  Not all param arrays the same size with bind on execute_array""
syntax error at t/lib/ExecuteArray.pm line 326, near "note "  no parameters""
Compilation failed in require at t/26exe_array.t line 19.
BEGIN failed--compilation aborted at t/26exe_array.t line 19.
# Looks like your test died before it could output anything.
t/26exe_array.................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/28array_bind................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/28array_bind.t line 27.
# Looks like your test died before it could output anything.
t/28array_bind................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/30long......................String found where operator expected at t/30long.t line 114, near "note "known bug in perl5.6.0 utf8 support, applying workaround\n""
        (Do you need to predeclare note?)
"my" variable $i masks earlier declaration in same scope at t/30long.t line 247.
"my" variable $lob_locator masks earlier declaration in same scope at t/30long.t line 337.
"my" variable $idx masks earlier declaration in same scope at t/30long.t line 337.
"my" variable $data masks earlier declaration in same scope at t/30long.t line 349.
"my" variable $len masks earlier declaration in same scope at t/30long.t line 353.
"my" variable $lob_locator masks earlier declaration in same scope at t/30long.t line 379.
"my" variable $idx masks earlier declaration in same scope at t/30long.t line 379.
"my" variable $len masks earlier declaration in same scope at t/30long.t line 382.
syntax error at t/30long.t line 114, near "note "known bug in perl5.6.0 utf8 support, applying workaround\n""
Execution of t/30long.t aborted due to compilation errors.
Undefined subroutine &main::drop_table called at t/30long.t line 79.
END failed--call queue aborted at t/30long.t line 493.
# Looks like your test died before it could output anything.
t/30long......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/31lob.......................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/31lob.t line 9.
# Looks like your test died before it could output anything.
t/31lob.......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/31lob_extended..............String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/31lob_extended.t line 22.
# Looks like your test died before it could output anything.
t/31lob_extended..............dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/32"note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/32
# Looks like your test died before it could output anything.
t/32
        Test returned status 255 (wstat 65280, 0xff00)
t/34pres_lobs.................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/34pres_lobs.t line 21.
# Looks like your test died before it could output anything.
t/34pres_lobs.................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/36lob_leak..................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/36lob_leak.t line 20.
# Looks like your test died before it could output anything.
t/36lob_leak..................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/38taf.......................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/38taf.t line 11.
# Looks like your test died before it could output anything.
t/38taf.......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/39attr......................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/39attr.t line 16.
# Looks like your test died before it could output anything.
t/39attr......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/40ph_type...................String found where operator expected at t/40ph_type.t line 103, near "note " Placeholder behaviour for ora_type=1 VARCHAR2 (the default) varies with Oracle version.\n""
        (Do you need to predeclare note?)
syntax error at t/40ph_type.t line 103, near "note " Placeholder behaviour for ora_type=1 VARCHAR2 (the default) varies with Oracle version.\n""
Execution of t/40ph_type.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/40ph_type...................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/50cursor....................String found where operator expected at t/50cursor.t line 44, near "note "Max cursors: $limit""
        (Do you need to predeclare note?)
"my" variable $cursor masks earlier declaration in same scope at t/50cursor.t line 81.
"my" variable $cursor masks earlier declaration in same scope at t/50cursor.t line 97.
syntax error at t/50cursor.t line 44, near "note "Max cursors: $limit""
Execution of t/50cursor.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/50cursor....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/51scroll....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/51scroll.t line 9.
# Looks like your test died before it could output anything.
t/51scroll....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/55nested....................String found where operator expected at t/55nested.t line 93, near "note "Fetched $row_count rows ($caption): $elapsed secs.""
        (Do you need to predeclare note?)
syntax error at t/55nested.t line 93, near "note "Fetched $row_count rows ($caption): $elapsed secs.""
Execution of t/55nested.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/55nested....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/56embbeded..................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/56embbeded.t line 9.
# Looks like your test died before it could output anything.
t/56embbeded..................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/58object....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/58object.t line 10.
# Looks like your test died before it could output anything.
t/58object....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/60reauth....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/60reauth.t line 6.
# Looks like your test died before it could output anything.
t/60reauth....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/70meta......................String found where operator expected at t/70meta.t line 54, near "note "sql_dbms_version=$sql_dbms_version""
        (Do you need to predeclare note?)
syntax error at t/70meta.t line 54, near "note "sql_dbms_version=$sql_dbms_version""
Execution of t/70meta.t aborted due to compilation errors.
# Looks like your test died before it could output anything.
t/70meta......................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/80ora_charset...............String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/80ora_charset.t line 13.
# Looks like your test died before it could output anything.
t/80ora_charset...............dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/rt13865.....................String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/rt13865.t line 10.
# Looks like your test died before it could output anything.
t/rt13865.....................dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
t/rt74753-utf8-encoded........String found where operator expected at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
        (Do you need to predeclare note?)
syntax error at t/nchar_test_lib.pl line 459, near "note "set \$ENV{NLS_LANG='$ENV{NLS_LANG}'""
syntax error at t/nchar_test_lib.pl line 465, near "}"
Compilation failed in require at t/rt74753-utf8-encoded.t line 12.
# Looks like your test died before it could output anything.
t/rt74753-utf8-encoded........dubious                                        
        Test returned status 255 (wstat 65280, 0xff00)
Failed Test                  Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/000-report-versions-tiny.t  255 65280    ??   ??       %  ??
t/00versions.t                255 65280     2    4 200.00%  1-2
t/10general.t                 255 65280    ??   ??       %  ??
t/12impdata.t                 255 65280    ??   ??       %  ??
t/14threads.t                 255 65280    ??   ??       %  ??
t/15nls.t                     255 65280    ??   ??       %  ??
t/20select.t                  255 65280    ??   ??       %  ??
t/21nchar.t                   255 65280    ??   ??       %  ??
t/22nchar_al32utf8.t          255 65280    ??   ??       %  ??
t/22nchar_utf8.t              255 65280    ??   ??       %  ??
t/23wide_db.t                 255 65280    ??   ??       %  ??
t/23wide_db_8bit.t            255 65280    ??   ??       %  ??
t/23wide_db_al32utf8.t        255 65280    ??   ??       %  ??
t/24implicit_utf8.t           255 65280    ??   ??       %  ??
t/25plsql.t                   255 65280    ??   ??       %  ??
t/26exe_array.t               255 65280    ??   ??       %  ??
t/28array_bind.t              255 65280    ??   ??       %  ??
t/30long.t                    255 65280    ??   ??       %  ??
t/31lob.t                     255 65280    ??   ??       %  ??
t/31lob_extended.t            255 65280    ??   ??       %  ??
t/32
t/34pres_lobs.t               255 65280    ??   ??       %  ??
t/36lob_leak.t                255 65280    ??   ??       %  ??
t/38taf.t                     255 65280    ??   ??       %  ??
t/39attr.t                    255 65280    ??   ??       %  ??
t/40ph_type.t                 255 65280    ??   ??       %  ??
t/50cursor.t                  255 65280    ??   ??       %  ??
t/51scroll.t                  255 65280    ??   ??       %  ??
t/55nested.t                  255 65280    ??   ??       %  ??
t/56embbeded.t                255 65280    ??   ??       %  ??
t/58object.t                  255 65280    ??   ??       %  ??
t/60reauth.t                  255 65280    ??   ??       %  ??
t/70meta.t                    255 65280    ??   ??       %  ??
t/80ora_charset.t             255 65280    ??   ??       %  ??
t/rt13865.t                   255 65280    ??   ??       %  ??
t/rt74753-utf8-encoded.t      255 65280    ??   ??       %  ??
Failed 36/37 test scripts, 2.70% okay. 2/8 subtests failed, 75.00% okay.
make: *** [test_dynamic] Error 255


 

[root@getlnx01 DBD-Oracle-1.64]# make install
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/mk.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.so
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/dbdimp.h
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.h
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/Oracle.bs
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/ocitrace.h
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/GetInfo.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Object.pm
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Macos.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Vms.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Aix.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Cygwin.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Win64.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Win32.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Sun.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Hpux.pod
Installing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/DBD/Oracle/Troubleshooting/Linux.pod
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Cygwin.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Vms.3pm
Installing /usr/share/man/man3/DBD::Oracle::GetInfo.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Macos.3pm
Installing /usr/share/man/man3/DBD::Oracle.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Linux.3pm
Installing /usr/share/man/man3/DBD::Oracle::Object.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Win32.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Win64.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Hpux.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Sun.3pm
Installing /usr/share/man/man3/DBD::Oracle::Troubleshooting::Aix.3pm
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/Oracle/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod


clip_image003

 

参考资料:

http://www.cnblogs.com/arcer/archive/2013/06/23/3150796.html

http://blog.itpub.net/758322/viewspace-683947

http://www.bitscn.com/pdb/oracle/200904/160495.html