我有连接到 Oracle 数据库的 perl 脚本,打开一个文本文件并从数据库表中的文件加载数据,该脚本在我的开发机器(windows xp 32 位)上完美运行,但是当我将脚本加载到生产服务器(windows 2003 64 位)并从命令行运行它,它会打开一个 perl.exe - 无法找到组件窗口,消息说
此应用程序无法启动,因为 OCI.dll 未找到。重新安装应用程序可能会解决此问题。
命令行输出为:
install_driver(Oracle) 失败:无法为模块 DBD::Oracle 加载“C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll”:load_file:%1 不是 C:/Perl64 上的有效 Win32 应用程序/lib/DynaLoader.pm 第 191 行。在 (eval 14) 第 3 行编译失败在 (eval 14) 第 3 行的要求中。可能需要的共享库或 dll 没有安装在 c:\warranty\warrantyImport.pl 行的预期位置15
我已经重新安装了 oracle 客户端,我尝试卸载活动 perl 和 oracle 客户端,然后在 perl 之前安装 oracle 客户端,因为听说这可能会导致问题。
我认为这可能是权限,所以我编写了一个简单的 perl 脚本来打开 oci.dll 并在无法打开时引发错误,它能够正确打开它。
我确保 C:\oracle\product\10.2.0\client_1\bin 在 PATH 环境变量中。
我可以使用 SQLPlus 连接到数据库
我已将 OCI.dll 添加到与 perl 脚本相同的目录中。
我现在终于没有想法了....任何人都可以提出任何建议,我正在努力让它发挥作用。
详情 服务器正在运行 ActivePerl 5.14.1 Build 1401(64 位) Oracle 数据库是 10g Oracle 客户端是 10.2.0