Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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;

兼容性

EXECUTE IMMEDIATE 在 SQL 标准中被指定。