2010-01-18 47 views
0

我有一個使用DBI與Oracle接口的腳本,但我不斷收到以下錯誤:Unix的甲骨文/ Perl驅動程序的問題

install_driver(Oracle) failed: Can't load '/usr/opt/perl5/lib/site_perl/5.005/aix/auto/DBD/Oracle/Oracle.s o' for module DBD::Oracle: dlopen: /usr/opt/perl5/lib/site_perl/5.005/aix/auto/DBD/Oracle/Oracle.so: can't load library /usr/opt/perl5/lib/site_perl/5.005/aix/auto/DBD/Oracle/Oracle.so50 /usr/oracle/lib/libclnts h.a shr.o103 /usr/oracle/lib/libclntsh.a shr.ocan't load library /usr/oracle/lib/libclntsh.a50 /usr/oracle /lib/libclntsh.a at /usr/local/lib/perl5/5.6.0/aix/DynaLoader.pm line 200. at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a required shared library or dll isn't installed where expected at ./dbi_test.pl line 9

Line 9 is were id do the prepare statement in my perl script: my $sth = $dbh->prepare('Sql statement here') or die "Couldn't prepare statement: " . $dbh->errstr;

我看了一下,我有2個版本的Perl安裝在/ usr/opt/perl5/lib/site_perl /目錄: 5.005和5.8.0

我的老闆告訴我,AIX版本安裝了一個版本,而我們的Oracle版本安裝了另一個版本。所以我想我正在加載錯誤的驅動程序,但我不確定。

有沒有人看到可能是什麼問題?

任何幫助表示讚賞。

回答

1

看起來您可能已經在5.8 perl安裝下安裝了DBI驅動程序,但是當您的腳本運行時(可能是由於您的PATH設置),系統正在使用5.005安裝。更改路徑以使用5.8可執行文件,並將PERL5LIB環境變量設置爲包含5.8庫路徑。

如果您必須使用5.005版本,​​那麼還要在該版本下安裝DBI。