我是 postgres 的新手并运行以下动态查询
EXECUTE 'Select * from products';
我得到以下回应。
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
我知道这将是我想念的基本内容
我是 postgres 的新手并运行以下动态查询
EXECUTE 'Select * from products';
我得到以下回应。
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
我知道这将是我想念的基本内容
有plpgsqlEXECUTE
的语句,它会做你想做的事——执行一个 SQL 查询字符串。您标记了dynamic,所以这可能是您正在寻找的。
仅适用于 plpgsql 函数或DO
语句(匿名代码块)。和之间的区别在精品手册中明确EXECUTE
SQL-EXECUTE
:
注意: PL/pgSQL语句与PostgreSQL 服务器支持
EXECUTE
的 SQL 语句无关。EXECUTE
服务器的EXECUTE
语句不能直接在 PL/pgSQL 函数中使用(也不需要)。
如果您想从动态SELECT
查询中返回值,如您的示例所示,您需要创建一个函数。DO
语句总是返回void
。更多关于从非常好的手册中的函数返回值的信息。