【发布时间】:2011-10-14 10:02:46
【问题描述】:
我有 perl 脚本,它连接到 Oracle 数据库,打开一个文本文件并将文件中的数据加载到数据库表中,该脚本在我的开发机器(windows xp 32 位)上完美运行,但是当我加载脚本到生产服务器(windows 2003 64 位)并从命令行运行它,它会打开一个 perl.exe - 无法找到组件窗口,消息说
此应用程序无法启动,因为找不到 OCI.dll。重新安装应用程序可能会解决此问题。
命令行输出为:
install_driver(Oracle) 失败:无法加载 'C:/Perl64/lib/auto/DBD/Oracle/Oracle.dll' 用于模块 DBD::Oracle: load_file:%1 不是有效的 Win32 应用程序 C:/Perl64/lib/DynaLoader.pm line 191. at (eval 14) line3 编译 在(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
【问题讨论】:
标签: windows perl oracle-call-interface dbd