簡體   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