我想在子查询中使用准备好的语句。 简单示例:
PREPARE get_series(int) AS SELECT * FROM generate_series(1,$1);
SELECT * FROM EXECUTE get_series(13);
但是我遇到语法错误。
作为替代方案,我可以使用存储过程,但整个想法是将所有内容都保留在源代码中,准备好的语句允许调用参数化查询。有点像 UDP,但在源代码方面。
注意:我使用的是 Postgres 10.2
最佳答案
EXECUTE
是一个 SQL 语句,不是可以在 FROM
子句中使用的表达式。
试试这个:
EXECUTE get_series(13);
您不能在子查询中使用 EXECUTE
— 那里只允许使用 SELECT
。
我会说你不应该为此使用准备好的语句;也许您真正需要的是集合返回函数。
关于sql - Vanilla Postgres,从准备好的语句中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233766/