1

最近我克隆了一个 informix 数据库服务器。我创建了一个名为 sp_foo 的新存储过程。

当我运行下面的 SQL 来执行一个过程时

EXECUTE PROCEDURE sp_foo();

调用存储过程时出现以下错误。

Error: The system command cannot be executed or it exited with a non-zero status. (State:S1000, Native Code: FFFFFD64)

我对为什么会收到此错误感到有些困惑。INFORMIX 没有给我任何额外的数据来找出导致问题的原因。

PS:我是 INFORMIX 的新手,我正在使用 WinSQL/Informix ODBC 来运行 SQL。此外,当我在原始服务器中运行 SQL 时,也没有任何错误。

4

1 回答 1

2

很难给出一个明确的答案,但它确实看起来像一个权限或环境问题。SP 内部的SYSTEM()调用正在尝试执行操作系统命令,但它要么无法找到它,要么失败。

当您在服务器上运行 SP 时它可以工作的事实向我表明:

  1. 通过 ODBC 执行时,它在具有不同权限的不同用户帐户下运行,或者
  2. 调用执行的命令SYSTEM()依赖于在服务器上调用脚本时存在的环境变量,但在通过 ODBC 调用时不存在。

我怀疑后者的可能性更大。

于 2015-04-23T02:02:21.203 回答