`
neeleon
  • 浏览: 181762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ORACLE的触发器TRIGGER的用法

阅读更多

1. trigger 是自动提交的,不用COMMIT,ROLLBACK

2. trigger最大为32K,如果有复杂的应用可以通过在TRIGGER里调用PROCEDURE或FUNCTION来实现。

3. 语法CREATE OR REPLACE TRIGGER <trigger_name>
<BEFORE | AFTER> <ACTION>
ON <table_name>

DECLARE
<variable definitions>
BEGIN
<trigger_code>
EXCEPTION
<exception clauses>
END <trigger_name>;
/

4. 相关命令
    create trigger
    create any trigger
    administer database trigger
    alter any trigger
    drop any trigger

5. 对列做触发(of)(行的触发是最常见的,不在这里列出


             1 create or replace trigger tri_wwm
             2 before update of id on wwm2 for each row
             3 declare the_str VARCHAR2(40):='update on wwm2''s id column';
             4 begin
             5      dbms_output.put_line(the_str);
             6* end tri_wwm;
           SQL> /

           Trigger created.

           SQL> update wwm2 set id=3;
           update on wwm2's id column

           1 row updated.

 

      6. Referencing 别名

          测试数据

           SQL> select * from wwm2;

                   ID NAME
           ---------- ----------
                    1 wwm
                    2 china

          建测试用日志表

             1 create table wwm_log
             2 (o_id number(8),o_name varchar2(10),
             3 n_id number(8),n_name varchar2(10),
             4* op_by varchar2(20),op_date date)
           SQL> /

           Table created.

           建立 触发器

             create or replace trigger tri_refer
            after update of id on wwm2 referencing new as new old as old for each row
            begin
                insert into wwm_log values (:old.id,:old.name,:new.id,:new.name,sysdate,user);
            end;
            /

            更新表以触发事件

           SQL> update wwm2 set id=8 where id=2;
           update on wwm2's id column

           1 row updated.

           SQL> select * from wwm_log;

                 O_ID O_NAME           N_ID N_NAME     OP_DATE   OP_USER
           ---------- ---------- ---------- ---------- --------- -----------------
                    2 china               8 china      09-MAR-06 SYSTEM

                 大家可以用这个方法来对一些操作做日志

 

      7.Disable/Enable

         ALTER TRIGGER tri_refer DISABLE/ENABLE

         ALTER TABLE wwm2 DISABLE/ENABLE ALL TRIGGERS;

         ALTER TRIGGER tri_refer RENAME TO tri_reference;

分享到:
评论

相关推荐

    oracle 触发器实时调用java 中http接口

    总之,"Oracle触发器实时调用Java中HTTP接口"是一个数据库与应用程序实时通信的示例,涉及Oracle的触发器、存储过程和UTL_HTTP包,以及Java HTTP服务器的设计和实现。这样的设计需要对Oracle PL/SQL和Java网络编程有...

    个人亲测oracle触发器调用java程序

    在本文中,我们将介绍如何使用Oracle触发器调用Java程序。 一、加载Java程序 首先,我们需要将Java程序加载到Oracle数据库中。我们可以使用LOADJAVA命令来实现这一步骤。LOADJAVA命令位于$ORACLE_HOME/bin目录下,...

    Oracle触发器备份表数据

    综上所述,使用Oracle触发器备份表数据是一种高效且灵活的方法,但同时也需要注意其潜在的局限性和挑战。通过合理设计和优化触发器,可以有效提升数据备份的效率和安全性,为数据库管理提供有力的支持。

    oracle触发器调用存储过程

    "Oracle触发器调用存储过程" Oracle触发器可以调用...Oracle触发器调用存储过程可以通过使用自治事务来解决事务隔离性问题,确保业务逻辑的正确执行。但是,需要注意自治事务的使用规则和注意事项,以避免出现问题。

    利用 Oracle 系统触发器防止误删除表操作

    #### 解决方案:使用Oracle系统触发器 为了应对这类问题,可以通过创建Oracle系统触发器来实现对`DROP TABLE`和`TRUNCATE TABLE`命令的监控与阻止。以下详细介绍两种不同的Oracle版本(10g和8i)下如何创建相应的...

    Oracle触发器里调用Java程序

    接下来,我们可以创建一个Oracle触发器来调用这个Java方法。例如,每当在表`MY_TABLE`上执行INSERT操作时,触发器会调用`MyJavaClass.doSomething`方法处理新插入的数据: ```sql CREATE OR REPLACE TRIGGER my_...

    oracle触发器

    ### Oracle触发器详解 在Oracle数据库管理中,触发器是一种非常强大的工具,它允许你在特定的数据库事件(如数据插入、更新或删除)发生时自动执行预定义的SQL语句或PL/SQL代码块。这使得数据库能够在无需外部程序...

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

    根据给定的文件信息,我们将深入探讨Oracle数据库中的触发器和内置程序包,重点解析触发器的概念、创建方法以及其在数据库管理中的作用。 ### 触发器:自动化执行的存储过程 触发器是一种特殊类型的存储过程,它在...

    Oracle中通过触发器来追踪用户的活动

    通过这种方式,Oracle的触发器可以有效地监控和记录用户的活动,为系统管理员提供宝贵的数据,帮助他们识别使用模式、检测异常行为并优化系统资源的分配。不过,这种追踪机制也有其局限性,例如无法直接获取用户会话...

    oracle 触发器方式实现行ID自增加

    本文将深入探讨如何使用Oracle触发器来实现行ID的自增加。 首先,我们得了解什么是触发器。在Oracle中,触发器是一种数据库对象,它可以在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预先定义的...

    oracle触发器实现二维码

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

    oracle触发器.ppt

    Oracle触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)或者特定的系统事件(如数据库启动和关闭)发生时,自动执行预定义的PL/SQL代码块。触发器是存储在数据库中...

    oracle触发器详解

    本文将深入解析Oracle触发器的原理、类型、创建及使用方法。 首先,触发器主要分为三种类型:行级触发器、语句级触发器和定时触发器。行级触发器在每一行数据受到影响时触发,而语句级触发器则在整个SQL语句执行...

    ORACLE触发器实例.doc

    Oracle触发器是数据库对象,主要用于实现特定的业务逻辑或数据完整性约束。它们可以在数据库中的表上定义,当特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以看作是数据库级别的存储过程,...

    oracle触发器调用java类.pdf

    本文将介绍如何使用 Oracle 触发器调用 Java 类,实现对文件的读写操作。 首先,需要将 Java 程序 load 进数据库中。使用 LOADJAVA 命令可以将 Java 程序 load 进数据库。例如,使用以下命令将 OracleTriggerJava....

    Oracle触发器用法实例详解

    Oracle触发器是数据库管理系统中的一种特殊程序,它在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行。触发器主要用于实现复杂的数据一致性、强制业务规则、提供审计跟踪和自动化某些操作,例如自增...

    创建Oracle触发器用于表中序列值自增长(Helloblock写作)

    ### 创建Oracle触发器用于表中序列值自增长 在Oracle数据库中,为了实现表中某个字段的自动递增功能,通常会使用序列(sequence)结合触发器(trigger)的方式来完成。这种方式不仅能够确保数据的一致性和完整性,...

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

    **一、Oracle触发器** 触发器是一种数据库对象,它在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行。触发器可以用于执行复杂的业务规则,如级联更新、历史记录跟踪、并发控制等。以下是一些关键知识...

Global site tag (gtag.js) - Google Analytics