繁体   English   中英

Perl 脚本无法连接到 Oracle 数据库

[英]Perl script not able to connect to Oracle Database

我在执行 Perl 脚本时收到以下错误消息。 以下是我在编译脚本时收到的错误消息。

install_driver(Oracle) 失败:无法加载模块 DBD::Oracle: ld 的“/xxx/usr/local/lib/perl5/site_perl/5.10.0/sun4-solaris/auto/DBD/Oracle/Oracle.so” .so.1:perl:致命:libclntsh.so.10.1:打开失败:在/xxx/usr/local/lib/perl5/5.10.0/sun4-solaris/DynaLoader.pm第203行没有这样的文件或目录。at (eval 99) line 3 Compilation failed in require at (eval 99) line 3. 也许在 /xxx/xxxx/xxxx/xxxx/XXXX/CommonOracle.pm line 71 预期的地方没有安装所需的共享库或 dll

最近在我的系统中Oracle已经从10.2升级到11.0。 请帮我解决问题? 我不是我系统的管理员。 我需要更改 LD_LIBRARRY_PATH 吗? 我正在使用 Solaris 操作系统。

你好像忘了问一个问题。 让我们假设它是“我该如何解决这个问题?”

与数据库通信需要在您的系统上安装许多东西。

  • 您需要您正在使用的数据库系统的客户端库。 这将是可能位于 /usr/lib 下某处的共享对象 (.so) 文件。

  • 您将需要用于数据库引擎的 Perl 数据库驱动程序(在您的情况下,这是 DBD::Oracle)。 如果您通过从头开始构建来安装它(如cpancpanm命令所做的那样),那么您几乎肯定还需要上述客户端库的开发版本。 如果您要安装预先构建的二进制版本(Linux 上的 .rpm 或 .apt - 我不知道 Solaris 的等效版本),那么您将不需要这些。

  • 您将需要 Perl DBI 库。

在我看来,DBD::Oracle 已安装。 这意味着还将安装 DBI。 但是 DBD::Oracle 很难找到客户端库。 这是令人惊讶的,因为安装 DBD::Oracle 需要它们。

所以,我怀疑要么不再安装 Oracle 客户端库,要么安装了它们,但不在 DBD::Oracle 寻找它们的地方。

DBD::Oracle 是如何安装的? 您是否有可以检查错误的安装日志?

问题已解决。 库路径中缺少 lib 文件“libclntsh.so.10.1”。 我已复制文件,问题已解决

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM