这个函数调用不返回“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的内容============
def object(input,plpy):
  import StringIO
  try:
   plan = plpy.prepare("INSERT INTO file VALUES (nextval('primary_sequence'),$1) RETURNING primary_key", ["integer"] )
  except:
   plpy.error(traceback.format_exc())

  try:
   rv = plpy.execute(plan, [ input ])
   result = rv[0]["primary_key"]
   plpy.info(" ========= INTRA-module result: ===",result)
   return result
  except:
   plpy.error(traceback.format_exc())

最佳答案

我不熟悉plpython,但是如果它抛出了一个错误,而这个错误没有被打印出来,或者在链上传递得更远,你永远不会知道。
我不知道您是否在使用命令行进行测试,但尝试在except块中放入print语句,看看它是否只是出错而不是返回。

08-28 09:46