我是 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语句(匿名代码块)。和之间的区别在精品手册中明确EXECUTESQL-EXECUTE:
注意: PL/pgSQL语句与PostgreSQL 服务器支持
EXECUTE的 SQL 语句无关。EXECUTE服务器的EXECUTE语句不能直接在 PL/pgSQL 函数中使用(也不需要)。
如果您想从动态SELECT查询中返回值,如您的示例所示,您需要创建一个函数。DO语句总是返回void。更多关于从非常好的手册中的函数返回值的信息。