0

postgres(9.2)からのトリガーとしてPythonプログラム(実際にはplpython3u)を実行する際に問題が発生します。トリガーは、次のステートメントを使用してPythonプログラムを呼び出します。performscalesmyone(new.id);

Pythonプログラムは、ファイルに何かを正常に書き込み(トリガーが機能していることを示します)、Windows 7マシンのC:ドライブでプログラムを実行しようとします。エラー:WindowsError:[エラー5]アクセスが拒否されました。現在サブプロセス呼び出しを使用していますが、以前はサブプロセス呼び出しを試しましたが、機能しませんでした。あなたはここでそれを見ることができ ます

コードは次のとおりです。

CREATE or replace FUNCTION scalesmyone (thename text)
RETURNS int
AS $$
a=5
f = open('C:\\JUNK\\frompython.txt','w')
f.write(thename)
f.close()
import subprocess
return_code = subprocess.call(["C:\\Users\\Jim\\Desktop\\BATfiles\\run_addcust.bat", '"hello"'])
$$ LANGUAGE plpython3u;

ファイルはそこにあります。

ジム

4

1 に答える 1

1

このエラーは、Postgres/plpython を実行しているユーザーが、その .bat ファイルに対する実行権限を持っていないことを示しています (少なくとも、プレーンな Python プログラムで取得していたものです)。これは、サブプロセス自体の問題ではない可能性があります。

于 2013-01-16T18:51:26.767 に答える