1

pg_prepare()接收一个初步的 SQL,然后使用pg_execute().

有没有办法获得生成的 SQL 以便我可以打印和调试它?

4

1 回答 1

2

可能不是,因为准备好的语句是服务器端的东西。从http://www.postgresql.org/docs/9.3/static/sql-prepare.html的文档:

准备好的语句是可用于优化性能的服务器端对象。当 PREPARE 语句被执行时,指定的语句被解析、分析和重写。当随后发出 EXECUTE 命令时,计划并执行准备好的语句。这种分工避免了重复的解析分析工作,同时允许执行计划依赖于提供的特定参数值。

这意味着即使服务器也不会“填充”原始字符串中的数据,而是在准备语句的过程中解析和“编译”语句,然后将编译后的语句和数据都传递给规划器。

于 2013-10-15T14:52:37.077 回答