↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1
预发布版本文档。 PostgreSQL 19beta4 为测试版本,最终发布内容可能有所不同。

EXECUTE IMMEDIATE

EXECUTE IMMEDIATE — 动态地预备并执行一个语句

大纲

EXECUTE IMMEDIATE string

描述

EXECUTE IMMEDIATE 立刻预备并且执行一个动态指定的 SQL 语句,不检索结果行。

参数

string #

包含待执行 SQL 语句的字符串字面量或主变量。

注解

在典型用法中,string 是一个主变量引用,指向包含动态构造 SQL 语句的字符串。直接使用字符串常量通常并不太有用,因为那样你也可以直接写 SQL 语句,而无需借助 EXECUTE IMMEDIATE。

如果使用字符串字面量,请注意,要在 SQL 语句中包含的双引号必须写为八进制转义(\042),而不是通常的 C 写法\"。这是因为字符串位于 EXEC SQL 段中,ECPG 词法分析器会按照 SQL 规则而非 C 规则解析它。内嵌的反斜杠随后会按照 C 规则处理;但\" 会被视为字面量的结束,因此会立即引起语法错误。

示例

这里是一个用 EXECUTE IMMEDIATE 和一个名为 command 的主变量执行 INSERT 语句的例子:

sprintf(command, "INSERT INTO test (name, amount, letter) VALUES ('db: ''r1''', 1, 'f')");
EXEC SQL EXECUTE IMMEDIATE :command;

兼容性

SQL 标准中说明了 EXECUTE IMMEDIATE。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.