oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)

oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)最近总发现用户表一些数据被删了,找不到原因,后面通过创建触发器来排查,当有操作x_yonghu表时,记录下来插入日志表中。 create or replace trigger trg_x_yonghu

oracle创建触发器(例:当有操作x_yonghu表指定字段并且字段有修改时,插入日志表)

最近总发现用户表一些数据被删了,找不到原因,后面通过创建触发器来排查,当有操作x_yonghu表时,记录下来插入日志表中。

create 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;

代码100分

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7185.html

(0)
上一篇 2023-03-25
下一篇 2023-03-25

相关推荐

  • 关于索引我能说的那些事儿「建议收藏」

    关于索引我能说的那些事儿「建议收藏」本文是自己对MySQL的 索引的理解,如有错误,还望不吝指出。 1 索引 索引两个大字往那里一摆,刚接触不久的朋友可能对这个概念有点陌生,不好理解。没有关系,先用一个简单的例子入手,比方说现在我们要从

    2023-01-30
    143
  • 用Python读取JSON文件并生成标题

    用Python读取JSON文件并生成标题a href=”https://beian.miit.gov.cn/”苏ICP备号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-07-26
    38
  • redis专项进阶课_redis项目

    redis专项进阶课_redis项目通过简单的KV数据库理解Redis 分为访问模块,操作模块,索引模块,存储模块 底层数据结构 除了String类型,其他类型都是一个键对应一个集合,键值对的存储结构采用哈希表 哈希表由多个哈希桶组成,

    2023-05-30
    149
  • MySQL学习笔记(27):备份与恢复

    MySQL学习笔记(27):备份与恢复本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。 MySQL的备份分为逻辑备份和物理备份,物理备份分为冷备份和热备份。恢复分为完全恢复和不完全恢复,不完全恢复

    2023-03-29
    160
  • mysql使用入门教程_cad自学入门

    mysql使用入门教程_cad自学入门本文是学习 Mysql必知必会 后的笔记 学习之前需要创建一个数据库,然后导入下面两个mysql脚本 create database db1 charset utf8; ###############

    2023-04-14
    145
  • redis持久化rdb和aof_redis的aof

    redis持久化rdb和aof_redis的aofRedis 默认支持持久化,依据自己的方式,将缓存在内存中的数据存储在磁盘上! Redis支持两种持久化数据的方式。第一种持久化方法为时间点转储(point-in-time dump),转储操作既可以

    2023-03-29
    184
  • MySQL快速回顾:高级查询操作「建议收藏」

    MySQL快速回顾:高级查询操作「建议收藏」8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到M

    2023-01-23
    148
  • mysql对子查询的优化改写

    mysql对子查询的优化改写《高性能mysql第三版》提到mysql会将in子查询改写成exists查询(书中基于的mysql版本是5.1.50和5.5) 但是在5.6之后,已经优化成使用半连接查询 首先要提的当然是臭名昭著的…

    2022-12-25
    152

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注