`
SwordShadow
  • 浏览: 268272 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle 触发器介绍和使用示例

阅读更多

        触发器是一种特殊的过程,但是用户不能直接调用触发器。触发器是特定事件出现时自动执行的代码块

 

        触发器示例

        

create or replace trigger biufer_emp_empno  --触发器名称
before insert or update          --触发语句
of empno
on emp                          --on 目标表
referencing old as old_value
		new as new_value
for each row
when(new value.empno<>7782)     --触发器限制
begin
	:new_value.comm:=0;         --触发操作
end;
/

        触发器名称中应该包含触发器执行时间、执行的操作、涉及的表或列

        如:

        biufer --> before insert or update for each row

 

        emp代表emp表,empno代表empno列,这可以指出触发器会涉及哪个列的值

      

        语句触发器

        1、用户可能需要在表上进行安全检查的insert、update或delete语句触发器,以便根据用户的具体业务规则验证正在进行操作的用户是否具有指定的权限

        

CREATE TABLE FOO(a number);
create or replace trigger biud_foo_a
before insert or update or delete
on foo
begin
 if user not in ('jack','Clinton') then
    raise_application_error(-20001,'你没有修改此表的权限') 
 end if;
end;
/ 

       如果用户不是...没有权限修改  

       在emp_copy表上创建一个触发器,当对emp_copy表执行插入、删除或更新操作是,该触发器将会填充emp_copy_log

       

create or replace trigger biufer_emp_copy
before insert or update or delete
on emp_copy
begin 
   insert into emp_copy_log values(user,sysdate);
end;
/

    然后测试该触发器。修改emp_copy

    

create table emp_copy_log(
who varchar2(30),
when date)
/

    

        行触发器  http://swordshadow.iteye.com/admin/blogs/1966002

 

       instead of 触发器

       instead of触发器是Oracle系统用来替换所使用的实际语句而执行的触发器,与导致触发器激活的语句执行之前或执行之后的语句触发器和行触发器不同

 

        示例:首先在emp表上创建emp_job视图

        

create or replace view emp_job
        as
        select empno, ename, job from emp;

 

 

       接着在emp_job视图上创建一个触发器。使得对emp_job视图的数据更新转变为对emp表的数据更新

create or replace trigger update_emp_job_view
instead of update
on emp_job
begin 
   update emp
   set empno = :new.empno,
         ename = :new.ename,
         job = :new.job
   where empno = :old.empno

        在触发器的主体有一个对表emp的update关键字。由于emp_job视图是建立在emp表上的视图,如果更新这个视图,实际上就是更新该图的基本表

 

 

删除触发器:

ALTER TRIGGER 名称 DISABLE;
drop trigger 名称;

 

    其他资料参考:

 

    

两个经典的Oracle触发器示例

      

分享到:
评论

相关推荐

    oracle数据库触发器实例

    oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例

    Oracle触发器 实例讲解

    一个关于oracle基本讲解。

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

    Oracle触发器与存储过程 实例,使用 高级编程 存储过程 触发器 E-MAIL 及错误处理。 共4个部分.

    oracle创建触发器实例

    很详细的oracle创建触发器的例子

    ORACLE触发器实例.doc

    收入一些ORACLE触发器的实例,供大家参考。希望有帮助

    ORACLE触发器 案例

    摘要:本文介绍了oracle触发器的概念和类型,总结了oracle触发器在开发MIS中的应用,并提供了实例以供参考. 关键词:MIS 、触发器 oracle 1.引言 本人在做一个大型的MIS系统(前台用powerbuild工具,后台用oracle...

    oracle触发器使用,很详细

    2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三:INSTEAD OF触发器 6 7,例四:语句级触发器之一 8 8,例五:语句级触发器之二 9 9,例六:用包封装...

    oracle触发器实例

    对某些oralce触发器实例的讲解和列子

    oracle触发器实例讲解

    oracle触发器实例讲解2008-11-27 09:17--[6]// Oracle Trigger ---------------------------------------------------------------------------------------------// --实例1------------------------ --创建触发器...

    Oracle 触发器语法及实例基础知识

    这是个pdf格式的文件,主要描述了Oracle 触发器语法及实例基础知识。希望能够给大家带来帮助(*^__^*)

    Oracle触发器详解

    本文是触发器的概念,语法,实例 进行剖析

    Oracle触发器用法实例详解

    主要介绍了Oracle触发器用法,结合实例形式详细分析了Oracle触发器的概念,功能,语法及相关使用技巧,需要的朋友可以参考下

    Oracle触发器实例代码

    Oracle触发器,用于选单后修改选单的表的触发动作。接下来通过本文给大家分享Oracle触发器实例代码,需要的的朋友参考下吧

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

    对oracle触发器和存储过程讲解的很详细,里面的实例也是非常有代表性,值得一看

    Oracle存储过程和触发器实例

    Oracle存储过程和触发器实例

    Oracle触发器在MIS开发中的应用分析

    数据库触发器在数据库开发、MIS开发上有很广泛的应用,但经验表明,使用过多的触发器将降低整个数据库的性能。... 本文介绍了oracle触发器的概念和类型,总结了oracle触发器在开发MIS中的应用,并提供了实例以供参考。

    Oracle中触发器示例详解

    在ORACLE系统里,触发器类似过程和函数,都有声明,执行和异常处理过程的PL/SQL块。 触发器类型 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要用户显示调用才执行,而触发器是...

    oracle存储过程及触发器总结

    介绍了oracle存储过程的实现、存储过程的调用和触发器语法及实例的基础知识

    oracle操作,存储过程,游标,触发器,oracle帮助文档,oracleAPI

    oracle应用经典实例,oracle操作,存储过程,游标,触发器,oracle帮助文档,oracleAPI

Global site tag (gtag.js) - Google Analytics