[英]Vanilla Postgres, select from prepared statement
我想在子查询中使用准备好的语句。 简单的例子:
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
。
我要说的是,您不应该为此使用准备好的语句。 也许真正需要的是返回函数集。
实际上,我想到可以使用CTE创建尽可能复杂的查询。 CTE将使其更易于阅读,并且将通过prepare语句进行参数化。 最后,查询仍然停留在源代码中,在源代码中,我可以提取可重复使用的部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.