【问题标题】:DBD::Oracle: load_file:The specified module could not be foundDBD::Oracle: load_file: 找不到指定的模块
【发布时间】:2017-08-01 06:08:01
【问题描述】:

这是一个与时间本身一样古老的故事。不,我不是在谈论一个男人的妻子和他最好的朋友私奔的故事。我说的是让DBD::Oracle 工作。尽管这两个故事所带来的痛苦程度大致相同。

让我们从事实开始:

  • 运行 Windows 7 -64 位
  • 运行 Strawberry Perl(v. 5.16.3 - 32 位)(我们使用 32 位的原因是因为有一个只有 32 位的模块,我们坚持使用它 - 不要问)
  • Oracle 客户端(版本 12.1.0 - 32 位)已成功安装。
  • 上述Oracle客户端的bin目录已经包含在PATH前面
  • 添加以下环境变量:

    ORACLE_HOME - 指向 Oracle 客户端路径
    TNS_ADMIN - 指向 Oracle 客户端路径
    LD_LIBRARY_PATH - 指向 Oracle 客户端路径
    ORACLE_USER_ID - 设置为有效的 oracle 用户,格式为:user/pass@system:port\sid
    ORACLE_SID - 设置为有效的 oracle sid

  • sqlplus 成功连接到所需数据库。

  • 使用cpanm“成功创建”DBD::Oracle 到 Strawberry Perl。虽然我不得不使用--force,因为测试失败了。
  • 输入到 tnsnames.ora 的条目,我认为是正确的:

    nameIMakeUp.WORLD = (描述= (地址列表 = (地址 = (协议 = TCP)(主机 = 服务器名)(端口 = 端口#)) ) (连接数据 = (SID = sid) ) )

在所有这些之后,我们尝试运行这段代码(为简洁起见被剪掉):

use DBI;
use DBD::ODBC;
use Log4Perl;

#logger set up here.

my $user = "username";
my $passwd = "password";
my $DSN = "dbi:Oracle:host=servername;sid=sid;port=port#";

my $oracleDbh = DBI->connect($DSN,$user,$passwd) or $logger->logdie("$DBI::errstr\n at line:".__LINE__);

我们得到了这个光荣的错误:

install_driver(Oracle) failed: Can't load 'C:/strawberry/perl/site/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:The specified module could not be found at C:/strawberry/perl/lib/DynaLoader.pm line 190.  
at (eval 84)[C:/strawberry/perl/vendor/lib/DBI.pm:770] line 3. 
Compilation failed in require at (eval 84)[C:/strawberry/perl/vendor/lib/DBI.pm:770] line 3. 
Perhaps a required shared library or dll isn't installed where expected
...stacktrace...

所以,我读到“C:/strawberry/perl/site/lib/auto/DBD/Oracle/Oracle.dll”正在寻找导致错误的 oci.dll。但是 oci.dll 位于 [oracle_client_path]/bin/ 中。理论上应该可以找到的。

还是在寻找另一个 dll? Windows 甚至 Visual Studio 中是否有可以提供帮助的工具?

或者我错过了什么神奇的步骤?

我提前感谢您提出的任何明智的圣人知识。

【问题讨论】:

    标签: windows oracle perl dll


    【解决方案1】:

    显然,需要重新启动。重新启动后,可以通过 Perl 进行连接。这是在这里以防有人像我一样愚蠢。我现在要退回我的 AS/400...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 2017-09-17
      • 2011-01-05
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多