使用带有instantclient 11.2的DBD :: Oracle时出错

时间:2013-03-19 22:57:21

标签: oracle perl cpan instantclient

我想在Mac OS X 10.8上使用perl模块DBD :: Oracle。 我通过CPAN安装了DBI。 下载了Oracle即时客户端11.2(基本版,sqlplus和jdk)。 将其提取到/ usr / local / oracle。

$ ls /usr/local/oracle/instantclient_11_2/
BASIC_README        libnnz11.dylib      ojdbc6.jar
SQLPLUS_README      libocci.dylib.11.1  sdk
adrci           libociei.dylib      sqlplus
genezi          libocijdbc11.dylib  uidrvci
glogin.sql      libsqlplus.dylib    xstreams.jar
libclntsh.dylib     libsqlplusic.dylib
libclntsh.dylib.11.1    ojdbc5.jar

然后安装了DBD :: Oracle。 现在,当我想使用DBD :: Oracle时,它会出错。

install_driver(Oracle) failed: Can't load '/Library/Perl/5.12/darwin-thread-multi- 
2level/auto/DBD/Oracle/Oracle.bundle' for module DBD::Oracle: 
dlopen(/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/Oracle/Oracle.bundle, 1): 
Library not loaded: /ade/b/2649109290/oracle/rdbms/lib/libclntsh.dylib.11.1
Referenced from: /Library/Perl/5.12/darwin-thread-multi-  
2level/auto/DBD/Oracle/Oracle.bundle
Reason: image not found at /System/Library/Perl/5.12/darwin-thread-multi-    
2level/DynaLoader.pm line 204.

我有DYLD_LIBRARY_PATH = / usr / local / oracle / instaclient_11_2 我不知道我做错了什么。

解决: 我在尝试运行sqlplus时遇到了同样的错误。我将我的oracle客户端目录添加到我的全局PATH变量中,它现在正在运行。

看到他们在本教程中做了同样的事情:http://www.janhellevik.no/?p=521

1 个答案:

答案 0 :(得分:0)

检查一下:perl DBD::Oracle Module installtion

以上信息是关于Linux环境的。但是你可能会得到一些关于如何在MAC OSX上配置DBD::Oracle的线索。

在linux上,你需要oracle即时客户端的“Basic,SQLPLUS和Devel”二进制文件。这是我的Linux盒子上的目录列表:

# pwd
/usr/lib/oracle/11.2/client64/lib
# ls -l
total 185232
-rw-r--r-- 1 root root       368 Sep 17  2011 glogin.sql
lrwxrwxrwx 1 root root        17 Jul  9  2012 libclntsh.so -> libclntsh.so.11.1
-rw-r--r-- 1 root root  52761218 Sep 17  2011 libclntsh.so.11.1
-rw-r--r-- 1 root root   7955322 Sep 17  2011 libnnz11.so
lrwxrwxrwx 1 root root        15 Jul  9  2012 libocci.so -> libocci.so.11.1
-rw-r--r-- 1 root root   1971762 Sep 17  2011 libocci.so.11.1
-rw-r--r-- 1 root root 118408281 Sep 17  2011 libociei.so
-rw-r--r-- 1 root root    164836 Sep 17  2011 libocijdbc11.so
-rw-r--r-- 1 root root   1503303 Sep 17  2011 libsqlplusic.so
-rw-r--r-- 1 root root   1477446 Sep 17  2011 libsqlplus.so
-rw-r--r-- 1 root root   2095661 Sep 17  2011 ojdbc5.jar
-rw-r--r-- 1 root root   2714016 Sep 17  2011 ojdbc6.jar
-rw-r--r-- 1 root root    300666 Sep 17  2011 ottclasses.zip
-rw-r--r-- 1 root root     66779 Sep 17  2011 xstreams.jar

以下是我安装的oracle即时客户端RPM列表:

# rpm -qa | grep -i oracle
oracle-instantclient11.2-basic-11.2.0.3.0-1
oracle-instantclient11.2-devel-11.2.0.3.0-1
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1

希望这有帮助。