# 立即执行
EXECUTE IMMEDIATE — 动态准备和执行语句
# 概要
EXECUTE IMMEDIATE string
# 描述
立即执行
立即准备并执行动态指定的 SQL 语句,而不检索结果行。
# 参数
细绳
包含要执行的 SQL 语句的文字字符串或主变量。
# 笔记
在典型的使用中,*细绳
*是对包含动态构造的 SQL 语句的字符串的主变量引用。文字字符串的大小写不是很有用;你还不如直接写 SQL 语句,不用额外输入立即执行
.
如果您确实使用文字字符串,请记住,您可能希望在 SQL 语句中包含的任何双引号都必须写为八进制转义 (\042
) 不是通常的 C 习语\"
.这是因为字符串在一个执行 SQL
部分,因此 ECPG 词法分析器根据 SQL 规则而不是 C 规则对其进行解析。稍后将根据 C 规则处理任何嵌入的反斜杠;但\"
导致立即出现语法错误,因为它被视为文字的结尾。
# 例子
这是一个执行插入
声明使用立即执行
和一个名为命令
:
sprintf(command, "INSERT INTO test (name, amount, letter) VALUES ('db: ''r1''', 1, 'f')");
EXEC SQL EXECUTE IMMEDIATE :command;
# 兼容性
立即执行
在 SQL 标准中指定。