oracle创建触发器及作用举例

--创建触发器及作用举例
create or replace trigger tri
before delete on emp 
--在删除emp表数据之前需要做的事根据自己的业务去写,before是在之前做的事,after是在之后要做的事
declare
t_result number := 10;
begin
  dbms_output.put_line('admin' || t_result);
end tri;

--下面是对表某些字段进行更新之后做的操作
create or replace trigger TRI_DISPLAYTABLE
after update of datatype,dbcolumnname,name on P#GCFR_T_FACTOR
for each row
declare
errno number;
errmsg varchar2(30);
begin
if updating ('datatype') then
update GCFR_T_DISPLAYTABLE t set t.datatype = :new.datatype where t.viewname = :old.dbtablename
and t.isvirtualcolumn = 0 and t.columncode = :old.dbcolumnname;
end if;

if updating ('dbcolumnname') then
update GCFR_T_DISPLAYTABLE t set t.datatype = :new.datatype where t.viewname = :old.dbtablename
and t.isvirtualcolumn = 0 and t.columncode = :old.dbcolumnname;
end if;

if updating ('name') then
update GCFR_T_DISPLAYTABLE t set t.datatype = :new.datatype where t.viewname = :old.dbtablename
and t.isvirtualcolumn = 0 and t.columncode = :old.dbcolumnname;
end if;
end;

--删除触发器
drop trigger tri;

 

posted @ 2018-01-17 11:30  土豆Z120553  阅读(292)  评论(0编辑  收藏  举报