存储过程和存储函数指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数
创建存储过程
语法:
存储过程示例:为指定的职工在原工资的基础上长10%的工资
–存储过程调用
存储函数
CREATE [OR REPLACE] FUNCTION函数名(参数列表)
RETURN 函数值类型
AS
PLSQL子程序体;
示例:查询某职工的年收入。
触发器
触发器的类型
创建触发器
示例1:限制非工作时间向数据库插入数据
触发语句与伪记录变量的值
|
触发语句 |
:old |
:new |
|
Insert |
所有字段都是空(null) |
将要插入的数据 |
|
Update |
更新以前该行的值 |
更新后的值 |
|
delete |
删除以前该行的值 |
所有字段都是空(null) |
示例2:确认数据(检查emp表中sal的修改值不低于原值)
SQL> create or replace trigger checkSal
before update of sal on emp
for each row
declare
begin
if :new.sal<:old.sal then
raise_application_error(-20001,’更新后的薪水比更新前小’);
end if;
end;
/
Trigger created
运行后结果:
SQL> update emp set sal=260 where empno=7499;
update emp set sal=260 where empno=7499
ORA-20001: 更新后的薪水比更新前小
ORA-06512: 在 “SCOTT.CHECKSAL”, line 4
ORA-04088: 触发器 ‘SCOTT.CHECKSAL’执行过程中出错
触发器总结
触发器可用于
• 数据确认
• 实施复杂的安全性检查
• 做审计,跟踪表上所做的数据操作等
查询触发器、过程及函数
• Select * from user_triggers;
• Select * from user_source;

评论(0)