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 子句来指定接收这些值的主变量。