PL/SQL 存储过程学习
基本语法
- 语法:
CREATE
OR REPLACE PROCEDURE 存储过程名 IS
BEGIN
NULL;
END;
- 解释:
- CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个存储过程, 如果存在就覆盖它
- IS关键词表明后面将跟随一个PL/SQL体
- BEGIN关键词表明PL/SQL体的开始
- NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句
- END关键词表明PL/SQL体的结束
- 示例:
CREATE OR REPLACE PROCEDURE 存储过程名(param1 IN type,param2 OUT type)
AS 变量1 类型(值范围);
变量2 类型(值范围);
BEGIN
SELECT
count(*) INTO 变量1
FROM
表A where列名 = param1;
IF (判断条件) THEN
SELECT
列名 INTO 变量2
FROM
表A where列名 = param1;
Dbms_output.Put_line (‘打印信息’);
Elsif (判断条件) THEN
Dbms_output.Put_line (‘打印信息’);
ELSE
Raise 异常名(NO_DATA_FOUND);
END IF;
Exception
WHEN others THEN
ROLLBACK;
END;
- 注意:
- 存储过程参数不带取值范围,in表示传入,out表示输出类型可以使用任意Oracle中的合法类型
- 变量带取值范围,后面接分号
- 在判断语句前最好先用count(*)函数判断是否存在该条操作记录
- 用select 。。。into。。。给变量赋值
- 在代码中抛异常用 raise+异常名
优点
- 存储过程存放在数据库服务器中,而且是已经编译好的,又在服务器端执行,执行效率高
- 存储过程把逻辑固化,隐藏数据,增加了数据安全性
- 存储过程增加了程序开发的灵活性和模块化
- 同一,存储过程存储在服务器端,且在服务器端执行,减少了网络通信量