有没有办法执行查询,如:
SELECT * FROM 17187::regclass;
其中SELECT 17187::regclass;
→tablename
在EXECUTE
的功能中很容易实现这一点,但我想知道没有功能的话。
感谢。
答案 0 :(得分:1)
你当然需要执行。这就是原因:
SQL查询在执行时会经过管道。这大致如下:
这样做的一个结果是您只能参数化值文字,并且永远不能参数化标识符。此外,实用程序语句从未计划或参数化(因此您无法在create user
中对任何内容进行参数化,尽管这是本讨论的外围因素。)
我没有看到为什么这种根本不可能的原因,但目前PostgreSQL的工作方式并不支持它。