我想在 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