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