我是 postgres 的新手,正在运行以下动态查询
EXECUTE 'Select * from products';
我收到以下回复。
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
我知道这是我缺少的基本内容
最佳答案
有EXECUTE
plpgsql 的语句,它会执行您正在尝试执行的操作 - 执行 SQL 查询字符串。您标记了 dynamic ,所以这可能就是您要找的。p>
仅适用于 plpgsql 函数或 DO
语句(匿名代码块)。 The distinction between EXECUTE
and SQL-EXECUTE
made clear in the fine manual :
Note: The PL/pgSQL
EXECUTE
statement is not related to theEXECUTE
SQL statement supported by the PostgreSQL server. The server'sEXECUTE
statement cannot be used directly within PL/pgSQL functions (and is not needed).
如果您想从动态 SELECT
返回值查询如您的示例所示,您需要创建一个函数。 DO
语句总是返回 void
. More about returning values from a function in the very fine manual.
关于postgresql - 动态查询postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709624/