我正在运行 Postgres 9.3,并且正在尝试创建一个调用用户定义的 sql 函数的 PL/Python 函数,但是在使用以下命令调用该函数后出现以下错误消息SELECT * FROM f2(TEXT1, TEXT2)
:
ERROR: NameError: global name 'f1' is not defined
SQL state: XX000
Context: Traceback (most recent call last):
PL/Python function "f2", line 1, in <module>
print f1()
PL/Python function "f2"
sql 函数如下所示:
CREATE FUNCTION f1(TEXT, TEXT) RETURNS SETOF some_tbl AS $$
SELECT col1, col2, col3
FROM some_other_tbl
WHERE col1=$1 AND col2=$2
GROUP BY col1;
$$ LANGUAGE 'sql';
PL/Python 函数是这样的:
CREATE FUNCTION f2(TEXT, TEXT) RETURNS SETOF some_tbl
AS $$ return f1() $$
LANGUAGE 'plpython2u';
因此,似乎在 f2 中找不到 f1,即使我可以自己调用它。
对此有任何指示吗?谢谢