我在运行 python 程序(真的是 plpython3u)作为 postgres(9.2)的触发器时遇到问题。触发器使用以下语句调用 python 程序: perform scalesmyone(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;
文件在那里。
吉姆