当前位置:Gxlcms >
数据库问题 >
oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)
oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)
时间:2021-07-01 10:21:17
帮助过:18人阅读
or replace trigger trg_x_yonghu_log_aft_modify
after update OF shouji, zigezhenghao,zidianshurufa,shurufa
on x_yonghu
for each row
declare
pri_sqlcode varchar2(
100);
pri_sqlerrm varchar2(
4000);
pri_username varchar2(
50);
pri_ip varchar2(
100);
pri_host varchar2(
200);
pri_type varchar2(
100);
begin
pri_username := sys_context(
‘userenv‘,
‘session_user‘);
pri_ip := sys_context(
‘userenv‘,
‘ip_address‘);
pri_host := sys_context(
‘userenv‘,
‘host‘);
pri_type := ‘update‘;
case when updating(
‘shouji‘)
or updating(
‘zidianshurufa‘)
or updating(
‘shurufa‘)
then
if :new.shouji
!= :old.shouji
or :new.zidianshurufa
!= :old.zidianshurufa
or :new.shurufa
!= :old.shurufa
then
insert into x_yonghu_log
(yonghuid_old,
yiyuanid_old,
zidianshurufa_old,
shurufa_old,
shouji_old,
zigezhenghao_old,
yonghuid_new,
yiyuanid_new,
zidianshurufa_new,
shurufa_new,
shouji_new,
zigezhenghao_new,
modify_host,
modify_ip,
modify_username,
modify_type)
values
(:old.yonghuid,
:old.yiyuanid,
:old.zidianshurufa,
:old.shurufa,
:old.shouji,
:old.zigezhenghao,
:new.yonghuid,
:new.yiyuanid,
:new.zidianshurufa,
:new.shurufa,
:new.shouji,
:new.zigezhenghao,
pri_host,
pri_ip,
pri_username,
pri_type);
end if;
end case;
exception
when others
then
begin
pri_sqlcode := sqlcode;
pri_sqlerrm := sqlerrm;
insert into x_yonghu_log
(modify_username,
modify_ip,
modify_host,
modify_type,
errormsg_sqlcode,
errormsg_sqlerrm)
values
(pri_username,
pri_ip,
pri_host,
pri_type,
pri_sqlcode,
pri_sqlerrm);
end;
end;
oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)
标签:指定字段 varchar values after use replace value uid err