PREPARE — 准备一条语句以供执行
PREPAREprepared_name
FROMstring
在典型用法中,字符串
是包含动态构建的 SQL 语句的字符串的主机变量引用。一个字符串文字的情况并不十分有用;您可能还只需要编写一个直接的 SQL PREPARE
语句。
如果您确实使用了一个字符串文字,请记住,您可能希望包含在 SQL 语句中的任何双引号都必须写为八进制转义符(\042
),而不是通常的 C 惯例 \"
。这是因为该字符串位于一个 EXEC SQL
部分中,所以 ECPG 词法分析器根据 SQL 规则而不是 C 规则对其进行解析。任何嵌入的斜杠将随后根据 C 规则进行处理,但 \"
将引起立即的语法错误,因为它被视为结束文字。
char *stmt = "SELECT * FROM test1 WHERE a = ? AND b = ?"; EXEC SQL ALLOCATE DESCRIPTOR outdesc; EXEC SQL PREPARE foo FROM :stmt; EXEC SQL EXECUTE foo USING SQL DESCRIPTOR indesc INTO SQL DESCRIPTOR outdesc;
PREPARE
在 SQL 标准中指定。