PREPARE — 准备一个语句以供执行
PREPAREprepared_nameFROMstring
在典型用法中,string 是对包含动态构造
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;
SQL 标准中说明了PREPARE。