繁体   English   中英

香草Postgres,从准备好的语句中选择

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM