1

我想在 Mac OS X 10.8 上使用 perl 模块 DBD::Oracle。我通过 CPAN 安装了 DBI。下载了 Oracle 即时客户端 11.2(basic、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

4

1 回答 1

0

看看这个:perl DBD::Oracle Module installtion

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

在 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

希望这可以帮助。

于 2013-03-20T06:27:16.487 回答