创建存储过程
CREATE PROCEDURE <存储过程名> ([参数1,参数2,...]) /*存储过程首部*/
AS
<PL/SQL块>; /*存储过程体,描述该存储过程操作*/
CREATE PROCEDURE Transfer(inAccount INT, outAccount INT, amount FLOAT)
AS
/*存储过程体,PL/SQL块 - star*/
DECLARE
totalDeposit FLOAT;
BEGIN
SELECT total INTO totalDeposit FROM ACCOUNT WHERE Accountnum = outAccount;
IF totalDeposit IS NULL THEN
ROLLBACK; /*回滚,当有一个SQL语句执行时,条件不符合要求,撤销事务开始后的操作*/
RETURN;
END IF;
IF totalDeposit < amount THEN
ROLLBACK;
RETURN;
END IF;
UPDATE account SET total = total - amount WHERE Accountnum = outAccount;
UPDATE account SET total = total + amount WHERE Accountnum = inAccount;
COMMIT; /*提交事务*/
END;
/*存储过程体,PL/SQL块 - end*/
重命名存储过程
ALTER PROCEDURE <存储过程名1> RENAME TO <存储过程名2>;
执行存储过程
CALL PROCEDURE Transfer(1000032324,123244444,1000);
删除存储过程
DROP PROCEDURE Transfer;