| SQL 编程 / 动态 SQL | |
在您准备语句之后,您可多次执行它。使用 EXECUTE 语句执行不是 SELECT 语句的那些语句,以及仅返回一行的 SELECT 语句。
EXEC SQL BEGIN DECLARE SECTION;
char bigquery[270] = "begin work;";
EXEC SQL END DECLARE SECTION;
stcat ("update account set balance = balance + ? where ", bigquery);
stcat ("acct_number = ?;', bigquery);
stcat ("update teller set balance = balance + ? where ", bigquery);
stcat ("teller_number = ?;', bigquery);
stcat ("update branch set balance = balance + ? where ", bigquery);
stcat ("branch_number = ?;', bigquery);
stcat ("insert into history values(timestamp, values);", bigquery);
EXEC SQL prepare bigq from :bigquery;
EXEC SQL execute bigq using :delta, :acct_number, :delta,
:teller_number, :delta, :branch_number;
EXEC SQL commit work;
EXECUTE 语句的 USING 子句提供主变量的列表,以其值替代准备好的语句中的问号。如果 SELECT(或 EXECUTE FUNCTION)仅返回一行,则您可使用 EXECUTE 的 INTO 子句来指定接收这些值的主变量。