本文只是學習如何配置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
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
二: 安裝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/32xmltype...................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/32xmltype.t line 9.
# Looks like your test died before it could output anything.
t/32xmltype...................dubious
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/32xmltype.t 255 65280 ?? ?? % ??
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
參考資料:
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