`

oracle触发器实践(增,改,删)

阅读更多

 

实现对某个表的增改删的监控操作,并记录到另一个表中...

 

具体代码如下:

 

 

create or replace trigger test_trigger
  before insert or update or delete on test_table
  for each row
declare
  v_id        varchar2(30);
  v_bdlb      varchar2(1);
  v_jgdm      VARCHAR2(12);
  v_jgmc      VARCHAR2(60);
  v_gajgmc    VARCHAR2(60);
  v_gajgwsmc  VARCHAR2(30);
  v_jz        VARCHAR2(30);
  v_ksdwsdwmc VARCHAR2(30);
begin
  /*
    插入时往历史表中存放的是新插入的数据.
    修改时往历史表中存放的是修改后的数据.
    删除时往历史表中存放的是删除之前的数据.
  */
  select org_id_s.nextval into v_id from dual; -- 利用seq生成主键
  v_jgdm     := :new.row_id;
  v_jgmc     := :new.dept_name;
  v_gajgmc   := :new.dept_name;
  v_gajgwsmc := :new.bmjc;
  v_jz       := substr(v_jgdm, 7, 2);
  if '2' = :new.depttype then
    v_ksdwsdwmc := 'shiju';
  else
    if '03' = v_jz then
      v_ksdwsdwmc := 'zhi';
    elsif '05' = v_jz then
      v_ksdwsdwmc := 'xing';
    elsif '51' = v_jz then
      v_ksdwsdwmc := 'she';
    else
      v_ksdwsdwmc := 'qita';
    end if;
  end if;

  if inserting then
    v_bdlb := '1';
    insert into test_table_h
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)
    values
      (v_id,
       v_bdlb,
       v_jgdm,
       v_jgmc,
       v_gajgmc,
       v_gajgwsmc,
       v_jz,
       v_ksdwsdwmc);
  elsif updating then
    v_bdlb := '2';
    insert into test_table_h
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)
    values
      (v_id,
       v_bdlb,
       v_jgdm,
       v_jgmc,
       v_gajgmc,
       v_gajgwsmc,
       v_jz,
       v_ksdwsdwmc);
  else
    v_bdlb     := '3';
    v_jgdm     := :old.row_id;
    v_jgmc     := :old.dept_name;
    v_gajgmc   := :old.dept_name;
    v_gajgwsmc := :old.bmjc;
    v_jz       := substr(v_jgdm, 7, 2);
    if '2' = :old.depttype then
      v_ksdwsdwmc := 'shiju';
    else
      if '03' = v_jz then
        v_ksdwsdwmc := 'zhi';
      elsif '05' = v_jz then
        v_ksdwsdwmc := 'xing';
      elsif '51' = v_jz then
        v_ksdwsdwmc := 'she';
      else
        v_ksdwsdwmc := 'qita';
      end if;
    end if;
    insert into test_table_h
      (id, bdlb, jgdm, jgmc, gajgmc, gajgwsmc, jz, ksdwsdwmc)
    values
      (v_id,
       v_bdlb,
       v_jgdm,
       v_jgmc,
       v_gajgmc,
       v_gajgwsmc,
       v_jz,
       v_ksdwsdwmc);
  end if;
end;

 

 

0
10
分享到:
评论

相关推荐

    ORACLE增删改查,游标,包,过程,触发器

    在Oracle数据库管理中,"增删改查"(CRUD:Create, Read, Update, Delete)是最基础的操作,是数据库管理员和开发人员必备的技能。接下来我们将深入探讨这些概念以及与之相关的游标、包、过程和触发器。 1. **增删...

    java实现增删改查使用Oracle数据库

    对于初学者来说,掌握如何使用Java操作Oracle数据库进行增删改查是基础且重要的技能。本教程将围绕这个主题展开,帮助你入门这一领域的知识。 一、Java数据库连接(JDBC) 在Java中与Oracle数据库交互,首先需要...

    oracle基本语法-增删改查-新手入门

    ### Oracle基本语法——增删改查 #### 一、Oracle简介与环境搭建 在学习Oracle基本语法之前,首先需要了解Oracle数据库系统的一些基础知识,并确保具备一个可以进行实践操作的环境。 - **Oracle简介**:Oracle是...

    struts+oracle完成增删改查

    在本文中,我们将探讨如何使用Struts2与Oracle数据库协同工作,实现基本的增删改查功能。 首先,为了连接Oracle数据库,我们需要在项目的`lib`目录下包含两个关键的JAR文件:`class12.jar`和`oracle14.jar`。这些...

    oracle增删改查

    在Oracle数据库中,"增删改查"(CRUD:Create, Read, Update, Delete)是基本的操作,对于任何数据库管理员或开发人员来说,掌握这些技能至关重要。下面我们将深入探讨Oracle中的这些操作以及如何创建新的数据库。 ...

    ssm简单的增删改查(初学者)

    SSM框架,全称Spring、Spring MVC和MyBatis,是Java Web开发中常用的一种集成框架,用于构建高效、灵活的Web应用程序。这个压缩包文件的内容可能...通过实践这样的增删改查案例,可以加深对SSM框架和数据库操作的理解。

    WPF入门增-删-改-查

    总之,"WPF入门增删改查"教程涵盖了从基本的WPF UI设计到数据库操作的多个方面,是一条全面了解并实践WPF数据操作的路径。通过学习和实践,你可以掌握创建功能完善的桌面应用程序所需的技能,为今后的WPF开发打下...

    oracle数据库中的对表中字段的增删改查

    在Oracle数据库中,对表中字段的增删改查是数据库管理的基础操作,涉及到数据库设计、数据完整性以及日常的数据维护工作。以下将详细介绍这四个基本操作,并结合标签“源码”和“工具”来探讨如何在实践中高效地完成...

    orcale增删改查

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其在企业级数据存储和管理中扮演着重要角色...通过不断的实践和调试,你将能够更加熟练地进行Oracle数据库的增删改查操作,为日常的数据管理工作打下坚实基础。

    Struts2连接oracle数据库增删改查实例的实现[方案].doc

    在上述文档中,我们关注的是如何利用Struts2框架与Oracle数据库进行交互,实现基本的数据操作:增(添加)、删(删除)、改(修改)和查(查询)。以下是对这个实例的详细解释: 1. **数据库连接**: 连接到Oracle...

    pl_sql基本语法例子.rar_SQL2569_oracle_pl/sql_plsql增删改查

    本资料主要涵盖了PL/SQL的基本语法以及数据的增删改查操作和视图的使用。 1. PL/SQL基础语法: PL/SQL由三部分组成:声明部分(Declaration)、执行部分(Execution)和异常处理部分(Exception Handling)。声明...

    PB数据窗口练习文件_PB增删改查_pb数据窗口_

    在"PB数据窗口练习文件_PB增删改查_pb数据窗口_"这个主题中,我们将深入探讨如何利用PowerBuilder的数据窗口来执行数据库的增、删、改、查操作,并了解数据窗口的复制粘贴功能。 首先,让我们理解什么是数据窗口。...

    VB-ORACLE实践报告.doc

    1. Oracle关系数据库语言:实践过程中,学生需初步掌握SQL,包括数据的增、删、改、查等基本操作,以及更复杂的PL/SQL语言的使用,用于编写存储过程和触发器等。 2. 数据库管理:学习如何在Oracle中创建数据库,并...

    基于Oracle数据库的图书管理系统

    《基于Oracle数据库的图书管理系统》是一个专为J2EE初学者设计的学习项目,旨在帮助他们理解和实践Hibernate、Servlet、JSP以及MVC模式在实际开发中的应用。该项目提供了全面的详细设计信息,使得学习者可以逐步掌握...

    《Oracle课程设计案例精编》 源代码 赵京

    本书的案例设计涵盖了Oracle的基础知识,如SQL查询语言、表的创建与管理、索引、视图、存储过程、触发器、游标以及数据库安全性等方面。通过这些案例,读者可以学习如何进行数据存储、检索、更新和删除,以及如何...

    oracle学习资料6本合集

    "傻瓜手册"系列以其简单明了的写作风格而著名,它将帮助读者快速掌握Oracle的基本操作,如数据的增删改查、数据库备份恢复等。 "Oracle性能优化.chm"则是Oracle数据库管理员(DBA)的重要参考资料。Oracle性能优化...

    oracle数据库教学视频

    在实际操作中,Oracle数据库还提供了PL/SQL(Procedural Language/SQL)编程语言,它是SQL的扩展,允许编写存储过程、函数、触发器等,增强了数据库的处理能力。虽然“SQL(DDL、DML)”章节可能不包含PL/SQL的详细...

    清华大学oracle培训

    学员将学习如何创建数据库、表空间、表、索引等基本对象,并掌握数据的增删改查操作。此外,事务处理、并发控制和数据库安全性也是基础部分的重点内容。 在Oracle数据库的高级特性方面,课程可能涵盖存储过程、...

    Oracle经典教程(oracle 10g版本11g未找到)

    Oracle的数据管理包括对数据的增删改查、表的管理、索引、视图等操作,这些都可以通过SQL语句来实现。Oracle支持的SQL标准使得不同版本间的开发差异并不显著。此外,Oracle特有的PL/SQL编程语言,是进行存储过程、...

Global site tag (gtag.js) - Google Analytics