从CGI Perl脚本查询Oracle数据库时出错



我有一个CGI Perl脚本,它将从Oracle数据库运行select语句来获取记录。此脚本在链接了cgi-bin的Apache上运行。运行良好。

由于故障切换,我们将硬盘移到了具有类似设置的备份服务器上。然而,当我们运行脚本时,会显示以下错误:

install_driver(Oracle) failed: Can't load '/u02/system/perl/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.11.1: cannot open shared object file: No such file or directory at /u02/system/perl/usr/lib64/perl5/DynaLoader.pm line 200.

我检查了我的ORACLE_HOMELD_LIBRARY_PATH变量,它们都指向正确的oracle客户端。也可以尝试locate libclntsh.so.11.1,并在授予权限的情况下在正确的目录中找到该文件。

还添加了一个oracle.conf文件,该文件的路径为/etc/ld.so.conf.d 中的oracle lib目录

所有这些,它仍然显示出相同的错误。我没什么想法了。。。。

任何建议或建议都将不胜感激。非常感谢。

您已经介绍了一些基本知识,这很好:确保库存在,确保程序具有读取/执行权限,以及为ORACLE_HOME和LD_LIBRARY_PATH设置环境变量。

您需要递归地检查依赖关系。

ldd /u02/system/perl/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so

应该向您显示.的任何依赖项,因此无法加载。DBD::Oracle也对Oracle客户端的版本敏感。如果Oracle客户端的版本或位置发生了更改(或者其他所有操作都失败时),则可能需要重新编译DBD::Oracle。

相关内容

  • 没有找到相关文章

最新更新