函数和触发器:
function:函数--有参数和返回值。
create or replace function sal_tax
(v_sal number)
return number
is
begin
if(v_sal < 2000) then
return 0.10;
elsif(v_sal < 2750) then
return 0.15;
else
return 0.20;
end if;
end;
调用函数--类比组合函数:
select lower(ename),sal_tax(sal) from emp;
触发器(trigger):--某个表的某些操作触发触发器内的程式执行。
1.create table emp2_log
(
uname varchar2(20);
action varchar2(10);
atime date
) ;
2.建触发器 after ,before--触发的时机。for each row --针对每条记录的触发。
create or replace trigger trig
after insert or delete or update on emp2 for each row
begin
if inserting then
insert into emp2_log values(USER,'insert',sysdate);
elsif updating then
insert into emp2_log values(USER,'update',sysdate);
elsif deleting then
insert into emp2_log values(USER,'delete',sysdate);
end if;
end;
drop trigger trig;
触发器的副作用,一般不使用,了解。--万不得已的情况下使用。
---:NEW,:OLD是记录的新状态和旧状态。系统默认名。
create or replace trigger trig
after update on dept for each row
begin
update emp set deptno = :NEW.deptno where deptno = :OLD.deptno;
end;
---用来更新有约束条件的记录,用到此数据的跟着更新。先触发触发器,再检查约束条件。