Oracle其他对象
一、其他对象
1.触发器trigger。你进行了某个动作(增、删、改。。。)让触发器感觉到了给予反馈
delete from emp where deptNo=30;/*删除30号部门的员工*/
delete from dept where deptNo=30;/*再删除30号部门*/
在清楚30号部门前,将30号部门的员工开除了(删掉30号部门的所有员工)
insert into dept(deptNo,dName,loc) values(63,'小卖部','XDL');
insert into emp(empNo,ename,deptNo) values(9999,'某帅',63);
insert into emp(empNo,ename,deptNo) values(8888,'某宝',63);
创建触发器实现删除63号部门☆前☆删除63号部门的员工
drop trigger tri_deptDel;
create trigger tri_deptDel
before delete on dept
for each row
begin
delete from emp where deptNo= :old.deptNo;
end;
因为有部门删除的级联触发器存在,所以当63号部门被删除时,先删除63号部门下的所有员工(触发器完成的)
delete from dept where deptNo=63;
before -- 某事情发生前
delete -- 发生的删除事件
before delete on dept -- 在dept表发生删除前触发这个自定义触发器
for each row -- 循环与当前删除相关的所有行,针对63号部门删除是,这个row便利的所有63号的员工
:old.deptNo -- 此:old旧对象,更新前的数据
:new.deptNo -- 此:new新对象,更新后的数据
update dept set deptNo=88 where deptNo=40;
:old.deptNo 指40号部门
:new.deptNo 值88号部门
2.包package 用来将当前自定义对象分门别类存放
create package pac_xd is ...声明..函数...
create package body pac_xdl is ...函数内容编写...
函数调用时
pac_xdl.函数(参数);