SQL 学习笔记:存储过程/PLSQL(存储过程)
一、存储过程 语法
-- MySQL
CREATE PROCEDURE p(IN a INT, OUT b INT)
BEGIN ... END;
-- Oracle
CREATE OR REPLACE PROCEDURE p(p_a IN INT, p_b OUT INT) IS
BEGIN ... END;二、参数说明
| 项目 | 说明 |
|---|---|
CREATE PROCEDURE | 创建存储过程,封装业务逻辑 |
参数模式 | IN 入参 / OUT 出参 / IN OUT(Oracle 支持) |
BEGIN...END | 过程体,含变量与语句 |
调用 | MySQL: CALL p(); Oracle: EXEC p(); 或 BEGIN p(); END; |
三、注意事项
- MySQL 用 DELIMITER 改结束符避开体内分号;Oracle 用 IS/AS
- Oracle PL/SQL 支持异常块 EXCEPTION WHEN ...;MySQL 用 DECLARE CONTINUE HANDLER
- 调用差异:MySQL CALL,Oracle 用 EXEC 或在匿名块中调用
四、经典案例
案例1:MySQL 过程
案例2:Oracle 过程
案例3:带异常处理
五、小结
存储过程/PLSQL是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。
评论(0)
请登录后发表评论。