在 postgres 9.3 (MacOSX) 上使用 sql,我如何将嵌套函数的参数引用到顶级函数的参数?下面是一个虚拟示例。
CREATE FUNCTION f1(x TEXT, y TEXT) RETURNS SETOF some_tbl AS $$
SELECT col1, col2, col3
FROM some_other_tbl
WHERE col1=x AND col2=y
GROUP BY col1;
$$ LANGUAGE 'sql';
CREATE FUNCTION f2(x TEXT, y TEXT) RETURNS void AS $$
COPY (SELECT * FROM f1(x, y) TO 'myfilepath/test.csv'
$$ LANGUAGE 'sql';
我查看了 SQL 函数的参数,发现您可以使用语法引用参数$n
。所以我在嵌套函数中替换了 (x, y) ,($1, $2)
但是在调用 f2 时它会给出错误消息ERROR: there is no parameter $1
SQL state: 42P02
Context: SQL function "f2" statement 1