此语句用于执行预准备 SQL 语句。
EXECUTE statement
[ USING { hostvar-list | DESCRIPTOR sqlda-name } ]
[ INTO { into-hostvar-list | DESCRIPTOR into-sqlda-name } ]
[ ARRAY :integer ]
statement : { identifier | hostvar | string }
sqlda-name : identifier
into-sqlda-name : identifier
EXECUTE IMMEDIATE statement
statement : { string | hostvar }
USING 子句 SELECT 语句或 CALL 语句的结果放在变量列表的变量中或放在指定的 SQLDA 所描述的程序数据区中。OUTPUT(选择列表或参数)和主机变量列表或 SQLDA 描述符数组之间是一对一的对应关系。
INTO 子句 如果 EXECUTE INTO 与 INSERT 语句一起使用,则插入行在第二个描述符中返回。例如,当使用自动增量主键或生成主键值的 BEFORE INSERT 触发器时,EXECUTE 语句提供一种机制,立即重新读取该行并确定分配给该行的主键值。对自动增量键使用 @@identity 也可以获得同样的效果。
ARRAY 子句 可选的 ARRAY 子句与预准备 INSERT 语句一起使用可允许宽插入,即一次插入多行,这样可提高性能。整数值是插入的行数。SQLDA 中,每个条目必须有一个变量(行数 * 列数)。第一行放在 SQLDA 变量 0 到 (columns per row)-1 中,依此类推。
EXECUTE 语句可用于任何可以预准备的 SQL 语句。游标用于从数据库中返回许多行的 SELECT 语句或 CALL 语句(请参见在嵌入式 SQL 中使用游标)。
成功执行 INSERT、UPDATE 或 DELETE 语句后,SQLCA (SQLCOUNT) 中的 sqlerrd[2] 字段由上述操作所影响的行数填充。
语法 1 执行指定的动态语句,这是先前已预准备的语句。如果动态语句包含为请求(绑定变量)提供信息的主机变量占位符,则 sqlda-name 必须指定一个指向 SQLDA(它包含的描述符足够语句中出现的所有绑定变量使用)的 C 指针变量,或者必须在 hostvar -list 中提供绑定变量。
语法 2 PREPARE 和 EXECUTE 语句的短格式,不包含绑定变量或输出。立即执行字符串或主机变量中包含的 SQL 语句,并且在完成后将其删除。
检查所执行的语句的权限。
无。
SQL/92 中间级特性。
SQL/99 核心 SQL 外部的特性。
Sybase 在 Open Client/Open Server 中受支持。
执行 DELETE。
EXEC SQL EXECUTE IMMEDIATE 'DELETE FROM employee WHERE emp_id = 105';
执行预准备 DELETE 语句。
EXEC SQL PREPARE del_stmt FROM 'DELETE FROM employee WHERE emp_id = :a'; EXEC SQL EXECUTE del_stmt USING :employee_number;
执行预准备查询。
EXEC SQL PREPARE sel1 FROM 'SELECT emp_lname FROM employee WHERE emp_id = :a'; EXEC SQL EXECUTE sel1 USING :employee_number INTO :emp_lname;
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。