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 に答える