PREPARE

PREPARE — 准备一个语句用于执行

Synopsis

PREPARE name FROM string

描述

PREPARE将一个作为字符串动态指定的语句准备好执行。这不同于直接的 SQL 语句PREPARE(也可以用于嵌入式程序)。EXECUTE命令被用来执行两种类型的预备语句。

参数

prepared_name

预备查询的一个标识符。

string

包含一个可预备语句的一个 C 字符串或一个主变量,可预备语句是 SELECT、INSERT、UPDATE 或者 DELETE 之一。

增强

PREPARE准备语句是支持语句中包含注释 ("/*" 和 "--" 两种形式)、双引号; 语句可以是带绑定参数的匿名块。绑定的格式支持两种 (:变量 或者 : 变量)。

例子

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带绑定参数的匿名块中包含注释 ("/*" 和 "--" 两种形式)、双引号。

    snprintf(sSQLExpress,sizeof(sSQLExpress),
                        " begin \n"
                        "-- $1,$2 \n /* 'zhangsan' \" lisi \" $1,$2*/ \n"
                        " insert into test \" $1 \" (a, b, c) "
                        "  /* $1,$2,$3,$4 */values (:V1, :V2, :V3);"
                        "   commit; "
                        " exception when others then "
                        "   rollback; "
                        "   raise; "
                        " end; " );
    EXEC SQL prepare crN1 from :sSQLExpress;
    EXEC SQL EXECUTE crN1 USING 17, 17, 17;

兼容性

SQL 标准中说明了PREPARE

兼容性

SQL 标准中说明了PREPARE

参见

EXECUTE