您可以在嵌入式 SQL 中创建和调用存储过程。
您可以像嵌入任何其它数据定义语句(如 CREATE TABLE)那样嵌入 CREATE PROCEDURE。您还可以嵌入 CALL 语句以执行存储过程。下面的代码段说明如何在嵌入式 SQL 中创建和执行存储过程:
EXEC SQL CREATE PROCEDURE pettycash( IN Amount DECIMAL(10,2) ) BEGIN UPDATE account SET balance = balance - Amount WHERE name = 'bank'; UPDATE account SET balance = balance + Amount WHERE name = 'pettycash expense'; END; EXEC SQL CALL pettycash( 10.72 ); |
如果想要将主机变量值传递到存储过程,或检索输出变量,请准备并执行 CALL 语句。下面的代码段说明主机变量的用法。USING 和 INTO 子句都在 EXECUTE 语句中使用。
EXEC SQL BEGIN DECLARE SECTION; double hv_expense; double hv_balance; EXEC SQL END DECLARE SECTION; // Code here EXEC SQL CREATE PROCEDURE pettycash( IN expense DECIMAL(10,2), OUT endbalance DECIMAL(10,2) ) BEGIN UPDATE account SET balance = balance - expense WHERE name = 'bank'; UPDATE account SET balance = balance + expense WHERE name = 'pettycash expense'; SET endbalance = ( SELECT balance FROM account WHERE name = 'bank' ); END; EXEC SQL PREPARE S1 FROM 'CALL pettycash( ?, ? )'; EXEC SQL EXECUTE S1 USING :hv_expense INTO :hv_balance; |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |