从python模块(从pl/python函数调用)中,如何获取返回值?

2024-06-10 14:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

这个函数调用不返回'result'有什么原因吗?在

CREATE OR REPLACE FUNCTION myfunction (input int, OUT result int) AS $$

result = mymodule.object(input,plpy)
plpy.info(" ========= EXTRA-module result: ===",result)

$$ LANGUAGE plpythonu;

===mymodule的内容===========

^{pr2}$

Tags: orinputobjectascreate原因functionresult
2条回答

我不太熟悉plpython,但是如果它抛出了一个错误,而这个错误没有被打印出来,或者没有被传递到更高的链上,你永远不会知道。在

我不知道你是否用命令行进行测试,但是试着在except块中放一个print语句,看看它是否只是出错而不是返回。在

@ed.实际上并不需要返回语法而不是OUT,但你的建议让我明白了答案。是的,我觉得自己像个傻瓜。这就是让别人评论自己作品的好处。在

加上返回结果,一切都很顺利。我在这里所做的关键假设是result=syntax实际上并没有在调用函数的范围内完成返回。哦!在

CREATE OR REPLACE FUNCTION myfunction (input int, OUT result int) AS $$

result = mymodule.object(input,plpy)
plpy.info(" ========= EXTRA-module result: ===",result)
# This was the key bit:
return result

$$ LANGUAGE plpythonu;

相关问题 更多 >