11.1.4.2、用户定义异常
用户定义异常
用户可以在 PL/SQL 块的声明部分定义异常,自定义的异常通过 RAISE 语句显式引发
11.1.5、条件判断
基本语法 1:
if 条件 then
业务逻辑
end if;
基本语法 2:
if 条件 then
业务逻辑
else
业务逻辑
end if;
基本语法 3:
if 条件 then
业务逻辑
elsif 条件 then
业务逻辑
else
业务逻辑
end if;
11.1.6、循环
11.1.6.1、无条件循环
语法:
loop
-- 循环语句
end loop;
11.1.6.2、条件循环
语法:
while 条件
loop
end loop;
11.1.6.3、for循环
语法;
for 变量 in 起始值..终止值
loop
end loop;
11.1.7、游标
11.1.7.1、概念:
游标是系统为用户开设的一个数据缓冲区,存放 SQL 语句的执行结果。我们可以把游标理解为 PL/SQL 中的结果集。
11.1.7.2、语法结构
在声明区声明游标,语法如下:
cursor 游标名称 is SQL 语句;
使用游标语法
open 游标名称
loop
fetch 游标名称 into 变量
exit when 游标名称%notfound
end loop;
close 游标名称
补充;
使用for进行游标查询
for 变量 in 游标
loop
end loop;
11.2、存储函数
11.2.1、概念
存储函数又称为自定义函数。可以接收一个或多个参数,返回一个结果。在函数中我们可以使用 P/SQL 进行逻辑的处理。
11.2.2、语法结构
语法:
CREATE [ OR REPLACE ] FUNCTION 函数名称
(参数名称 参数类型, 参数名称 参数类型, ...)
RETURN 结果变量数据类型
IS
变量声明部分;
BEGIN
逻辑部分;
RETURN 结果变量;
[EXCEPTION
END;
解释:
参数只指定类型,不指定长度
过程参数的三种模式:
IN 传入参数(默认)
OUT 传出参数 ,主要用于返回程序运行结果
IN OUT 传入传出参数
11.4、触发器
11.4.1、概念
数据库触发器是一个与表相关联的、存储的 PL/SQL 程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle 自动地执行触发器中定义的语句序列。
触发器可用于
数据确认
实施复杂的安全性检查
做审计,跟踪表上所做的数据操作等
数据的备份和同步
触发器分类
前置触发器(BEFORE)
后置触发器(AFTER)
11.4.2、语法结构
语法:
CREATE [or REPLACE] TRIGGER 触发器名
BEFORE | AFTER
[DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]
ON 表名
[FOR EACH ROW ][WHEN(条件) ]
declare
……
begin
PLSQL 块
End ;
解释:
FOR EACH ROW 作用是标注此触发器是行级触发器 语句级触发器
补充:
伪记录变量: