`

oralce 触发器例子

 
阅读更多
create or replace trigger TRIG_UPDATE_WORK_GROUP_DETAIL
       --迁入时间,迁出时间,备注
  after update of SIGN_IN_TIME,SIGN_OFF_TIME,REMARK
  on OM_WORK_GROUP_DETAIL  
  for each row
declare
  -- local variables here
begin
  
   if nvl(:new.SIGN_IN_TIME,trunc(sysdate))<>nvl(:old.SIGN_IN_TIME,trunc(sysdate)) then
     insert into OM_SYS_MODIFY_LOG(id,createtime,Source_Id,Business_Code,Operation_Date,OPERATION_TYPE,FIELD_CODE,FIELD_NAME,MODIFY_PRE_VALUE,MODIFY_BACK_VALUE,
                               MODIFIER_NAME,MODIFY_OPTLOCK,MODIFY_TABLE_NAME)
                          VALUES(OM_SYS_MODIFY_LOG_SEQ.NEXTVAL,SYSDATE,:NEW.ID,:NEW.WORK_GROUP_CODE||'_'||:NEW.EMPLOYEE_NUM,SYSDATE,'UPDATE','SIGN_IN_TIME','迁入时间',to_char(:old.SIGN_IN_TIME,'yyyy-MM-dd HH24:mi:ss'),to_char(:new.SIGN_IN_TIME,'yyyy-MM-dd HH24:mi:ss'),
                          :new.LAST_UPDATOR_NAME,:new.LOCK_VERSION,'OM_WORK_GROUP_DETAIL');
    end if;
     if nvl(:new.SIGN_OFF_TIME,trunc(sysdate))<>nvl(:old.SIGN_OFF_TIME,trunc(sysdate)) then
     insert into OM_SYS_MODIFY_LOG(id,createtime,Source_Id,Business_Code,Operation_Date,OPERATION_TYPE,FIELD_CODE,FIELD_NAME,MODIFY_PRE_VALUE,MODIFY_BACK_VALUE,
                               MODIFIER_NAME,MODIFY_OPTLOCK,MODIFY_TABLE_NAME)
                          VALUES(OM_SYS_MODIFY_LOG_SEQ.NEXTVAL,SYSDATE,:NEW.ID,:NEW.WORK_GROUP_CODE||'_'||:NEW.EMPLOYEE_NUM,SYSDATE,'UPDATE','SIGN_OFF_TIME','迁出时间',to_char(:old.SIGN_OFF_TIME,'yyyy-MM-dd HH24:mi:ss'),to_char(:new.SIGN_OFF_TIME,'yyyy-MM-dd HH24:mi:ss'),
                          :new.LAST_UPDATOR_NAME,:new.LOCK_VERSION,'OM_WORK_GROUP_DETAIL');
    end if;
    if nvl(:new.REMARK,'*^$@!#%&')<>nvl(:old.REMARK,'*^$@!#%&') then
     insert into OM_SYS_MODIFY_LOG(id,createtime,Source_Id,Business_Code,Operation_Date,OPERATION_TYPE,FIELD_CODE,FIELD_NAME,MODIFY_PRE_VALUE,MODIFY_BACK_VALUE,
                               MODIFIER_NAME,MODIFY_OPTLOCK,MODIFY_TABLE_NAME)
                          VALUES(OM_SYS_MODIFY_LOG_SEQ.NEXTVAL,SYSDATE,:NEW.ID,:NEW.WORK_GROUP_CODE||'_'||:NEW.EMPLOYEE_NUM,SYSDATE,'UPDATE','REMARK','备注',:old.REMARK,:new.REMARK,
                          :new.LAST_UPDATOR_NAME,:new.LOCK_VERSION,'OM_WORK_GROUP_DETAIL');
    end if;
  
end TRIG_UPDATE_WORK_GROUP_DETAIL;

 

分享到:
评论

相关推荐

    oracle触发器语法要点

    ### Oracle触发器语法要点 #### 一、触发器概述 Oracle触发器是一种存储过程,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于实施复杂的业务规则、数据完整性检查或者自动生成...

    Oracle触发器里调用Java程序

    本篇文章将探讨如何在Oracle触发器中调用Java程序,以扩展数据库的功能并利用Java丰富的库资源。 首先,我们需要了解Oracle的PL/SQL(Procedural Language/Structured Query Language)语言,它是Oracle数据库内置...

    oracle函数触发器游标等几个小例子

    3. **Oracle触发器**:触发器是一种特殊的存储过程,会在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。`V_InsertEquip.sql`可能包含一个插入触发器的示例,这种触发器在向特定表中插入新数据时被...

    oracle中记录用户登录信息的触发器的例子

    本文将通过一个具体的例子来展示如何在Oracle数据库中创建一个触发器,用于自动记录用户的登录信息。 #### 二、需求分析与设计 假设我们正在为一家企业开发一个基于Oracle数据库的安全管理系统。为了提高系统的...

    ORACLE触发器、内置程序包教学.doc )

    在这个例子中,触发器 `biu_emp_deptno` 在 `Emp` 表的 `deptNo` 字段进行插入或更新操作之前被触发,如果新值不等于40,则将 `comm` 列设为0。 ### 触发器的组成部分 触发器主要由三部分组成:触发语句、触发限制...

    oracle触发器实现二维码

    在这个场景中,我们讨论的是如何利用Oracle触发器来实现二维码的生成与存储。 首先,"oracle触发器实现二维码"这个标题意味着我们将结合Oracle数据库和二维码技术。二维码(Quick Response Code,简称QR Code)是一...

    oracle数据库触发器实例

    本文将通过三个具体的例子来展示如何创建和使用Oracle数据库中的触发器。 #### 二、示例1:记录表变更日志 **目的**:记录对`test`表进行插入、更新和删除操作的日志信息。 **步骤**: 1. **创建表**:首先创建`...

    Oracle触发器

    Oracle触发器是数据库管理系统Oracle中的一个重要特性,它允许在特定事件(如数据修改DML操作:INSERT、UPDATE或DELETE)发生时自动执行预定义的PL/SQL代码块。触发器可以用来实现复杂的业务规则,审计跟踪,或者在...

    oracle创建触发器实例

    Oracle 创建触发器是一种数据库编程技术,用于在特定的数据库事件发生时自动执行一段代码。在这个实例中,我们看到的是一个防止非本地机器执行DDL(Data Definition Language)操作的触发器,比如`TRUNCATE`、`ALTER...

    Oracle触发器与存储过程高级编程

    在“Oracle触发器与存储过程高级编程”中,我们将深入探讨这两个概念以及相关的高级特性。 首先,让我们关注用户自定义运算符(User-Defined Operators)。这些运算符允许开发人员扩展SQL语言,创建符合特定业务...

    oracle触发器使用笔记

    Oracle触发器是数据库管理系统Oracle中的一个关键特性,用于在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的PL/SQL代码。触发器可以用来强制执行业务规则、实现复杂的数据验证和同步操作,...

    Oracle触发器好东东

    根据提供的文件信息,本文将详细解释Oracle触发器的相关知识点,包括触发器的基本概念、类型以及在实际场景中的应用示例。 ### Oracle触发器基础 触发器是数据库管理系统中的一种存储过程,它会在特定的数据库事件...

    oracle触发器详解

    Oracle触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行一段预定义的SQL代码或PL/SQL块。这对于实现业务规则、数据验证、日志记录等场景非常有用。...

    16.Oracle触发器1

    Oracle触发器是数据库对象,它是一种在特定事件发生时自动执行的存储过程。触发器的执行无需用户显式调用,而是由数据库系统在特定事件(如DML操作或DDL操作)触发时隐式运行。触发器由三部分组成:触发条件(即触发...

    oracle监控某表变动触发器例子(监控增,删,改)

    总结来说,这个Oracle监控表变动触发器例子是通过创建一个触发器来实时捕获对`test_table`的DML操作,并将这些操作的信息存入历史表`test_table_h`。这种方法可以有效地跟踪数据的变动,确保数据完整性,并且有助于...

    一个DDL触发器例子(阻止DDL并记警告日志)

    有时我们需要控制用户对表执行DDL操作,包括truncate等操作。为了达到灵活控制的目的,我们使用了DDL trigger

    ORACLE触发器语法

    在深入探讨ORACLE触发器语法之前,我们先来理解一下触发器的基本概念。触发器是数据库中的一个存储过程,它会在特定的事件(如数据插入、更新或删除)发生时自动执行。ORACLE触发器是一种强大的工具,允许数据库管理...

    Oracle触发器在税务MIS开发中的应用.pdf

    Oracle触发器在税务MIS开发中扮演着至关重要的角色,主要应用于数据完整性的维护、分布式删除操作、数据冗余管理以及动态数据处理。在税务信息管理系统(MIS)的开发中,通常会遇到数据一致性、批量删除和实时信息...

    存储过程、触发器、定时器例子(oracle)

    在Oracle数据库系统中,存储过程、触发器和定时器是三个关键的数据库管理工具,它们在数据处理和业务逻辑执行中扮演着重要角色。本文将详细介绍这三个概念,并结合实际例子来帮助理解它们的工作原理和应用。 1. **...

Global site tag (gtag.js) - Google Analytics