【问题标题】:ruby OCI script encounters error when run as scheduled taskruby OCI 脚本在作为计划任务运行时遇到错误
【发布时间】:2015-10-21 19:30:02
【问题描述】:

我有一个对 oracle 数据库进行查询的脚本。当我从命令行调用脚本时,一切正常且符合预期。

但是,当我设置 Windows 任务计划程序来执行脚本时,我在需要 OCI gem 时遇到了一个错误,我不确定为什么:

C:/Ruby21-x64/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': 193: %1 is not a valid Win32 application.   
- C:/Ruby21-x64/lib/ruby/gems/2.1.0/extensions/x64-mingw32/2.1.0/ruby-oci8-2.1.8/oci8lib_210.so (LoadError)

我的环境:

64 位 Windows 7

Ruby 2.1.7

ruby-oci8 -v 2.1.8(oracle gem)

适用于 64 位 Windows 的 Oracle Instant Client

我对似乎类似的错误进行了一些研究,似乎问题与为 32 位 Windows 平台构建的 gem 有关,但我不知道该怎么做,尤其是因为它从命令行调用时工作正常。

非常感谢任何帮助!

【问题讨论】:

    标签: ruby windows scheduled-tasks windows-7-x64 oracle-call-interface


    【解决方案1】:

    此问题是由未在任务计划程序进程中更新的 PATH 环境变量引起的。即使您关闭 GUI 并再次打开,任务计划程序进程 (taskeng.exe) 也会在后台运行。因此关闭 GUI 并再次打开不会重新启动捕获更新的PATH 的过程。

    当我安装 Oracle Instant Client 时,我必须将它的位置添加到 PATH。但是任务计划程序找不到客户端,因为它需要真正重新启动才能更新其已知的PATH 变量。

    通过杀死taskeng.exe并重新启动它来解决。 (重启电脑也会有同样的效果。)感谢久保武弘帮我找出问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多