EXEC SQL BEGIN DECLARE SECTION;
char disc_up[80];
int cust_num;
EXEC SQL END DECLARE SECTION;
main()
{
sprintf(disc_up, "%s %s","update customer ",
"set discount = 0.1 where customer_num = ?");
EXEC SQL prepare up1 from :disc_up;
while (1)
{
printf("Enter customer number (or 0 to quit): ");
scanf("%d", cust_num);
if (cust_num == 0)
break;
EXEC SQL execute up1 using :cust_num;
}
}
如同 SQL 语句高速缓存一样,准备好的语句可降低重新优化同一查询计划的频度,从而节约在一些上下文中的资源。准备好的语句和语句高速缓存 部分讨论综合地使用准备好的 DML 语句、游标和 SQL 语句高速缓存或提升查询性能的替代技术。