Collection Contents 上一页 下一页 PDF

ASA SQL 参考

SQL 语句

EXECUTE 语句 [ESQL]


说明 

此语句用于执行预准备 SQL 语句。

语法 1 

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

语法 2 

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 语句,并且在完成后将其删除。

权限 

检查所执行的语句的权限。

副作用 

无。

另请参见 
标准和兼容性 
示例 

执行 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;

Collection Contents 上一页 下一页 PDF