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

oracle触发器基础

阅读更多

基础书籍中记录下来的。

--1、语句触发器
create or replace trigger tr_insert_test1
before insert
on test1
begin
  if user!='admin' then
    raise_application_error(-20001,'权限不足,不能向数据表中插入数据1');
  end if;
end;
--多个激活动作
create or replace trigger tr_insert_test2
before insert or update or delete
on test1
begin
  if user!='KELY' then--区分大小写,统一大写
    raise_application_error(-20001,'权限不足,不能向数据表中插入数据2');
  end if;
end;

--触发器谓词:INSERTING、UPDATING、DELETING(类型布尔值)
--记录数据库表操作日志,使用触发器
create table t_log(
       u_name varchar2(20),
       action varchar2(50),
       log_time date default sysdate
);
create or replace trigger tr_table_log
after insert or update or delete
on test1
begin
  if inserting then
    insert into t_log(u_name,action) values(user,'insert');
  end if;
  if updating then
    insert into t_log(u_name,action) values(user,'update');
  end if;
  if deleting then
    insert into t_log(u_name,action) values(user,'delete');
  end if;
end;
--禁用表的权限校验触发器
alter trigger tr_table_log enable;--disable/enable

--总结:作用级别为表(不支持视图before/after insert和表before/after select),
--     无论触发动作影响到多少记录都执行一次触发器

--2、行触发器
       insert      update     delete
:old   不可用       可用        可用   
:new    可用        可用       不可用

--实例
create or replace trigger tr_test1_history
before update or delete
on test1
for each row --行触发器的标志
  begin
    insert into test1_history values(:old.tid,:old.tname,:old.tage,:old.remark);
  end;

--变量引用于referencing
create or replace trigger tri_test1_insert
before insert
on test1
referencing new as new_value
for each row 
begin
  declare max_id number;
  begin
    select max(tid) into max_id from test1;
    :new_value.tid := max_id+1;
  end;
end;
--触发器的条件限制

--3、instead of触发器(视图)

--4、系统事件与用户事件触发器
--系统事件触发器
--after startup/before shutdown(系统事件) on database
--用户事件触发器
-- on system.schema:指定触发器的作用对象为用户system的所有对象(表名)
--5、触发器相关操作
--禁用/启用触发器:disable(alter trigger tr_name disable/enable)
--数据字典中查看触发器:user_objects/user_triggers

 

0
0
分享到:
评论

相关推荐

    Oracle触发器基础教程.pdf

    Oracle触发器基础教程.pdf

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

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

    oracle触发器和存储过程

    关于oracle触发器和存储过程的基础教程

    oracle存储过程及触发器总结

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

    Oracle12c数据库基础教程Oracle12c数据库游标、存储过程和触发器.pptx

    Oracle12c数据库基础教程Oracle12c数据库游标、存储过程和触发器.pptx

    Oracle 基础知识 -大全- 原创整理.pdf

    1.掌握oracle表的管理(创建/维护) 2.掌握对oracle表的各种查询技巧 3.学会创建新的oracle数据库 4.掌握oracle表对数据操作技巧 ...18.会编写oracle各种触发器 19.理解视图的概念并能灵活使用视图

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    3. 掌握oracle数据库体系机构,为oracle优化奠定基础。 三、适合人群: 1.有意从事oracle 数据库工作,担任dba角色的人员; 2. Oracle数据库设计、开发和备份等管理人员; 四、课程内容: 第一讲:Oracle体系结构 ...

    Oracle数据库基础

    介绍了Oracle基础,sql基础,存储过程开发等

    oracle存储过程、函数和触发器

    oracle存储过程、函数和触发器 比较基础的源代码

    oracle基础的文档 熟悉oracle的对象

    文档内容是oracle的基础,包括oracle对象中的存储过程,大对象,触发器,包,表,索引,视图,表空间等等基础知识。

    Oracle从基础到熟练(太实用了)

    oracle基础: ①:如何进入Oracle ②:常见的开发工具 ③:创建/DB/TB/用户 授权等操作 二. oracle体系结构组件 ①:oracle完整的体系结构 ②:oracle实例的组成 ③:oracle数据库的组成 三.SQL函数与SQL查询 ①:Oracle...

    Oracle数据库基础.doc

    主要包括两个部分,第一部分是ORACLE SQL*PLUS基础,主要讲述ORACLE 应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLE PL/SQL知识,主要讲述ORACLE数据库PL/SQL程序设计所用到基本知识,这部分给...

    oracle基础培训

    Oracle比较全面的培训教程...ch14触发器.ppt ch15事务处理和并发控制.ppt ch16闪回操作.ppt ch17数据传输技术.ppt ch18使用大对象技术.ppt chap19Oracle的数据字典.ppt 应该可以帮助你快速而又全面的熟悉Oracle数据库。

    Oracle数据库速查知识文档,oracle使用手册

    oracle rownum,Oracle数据库速查知识文档,oracle基础使用、SQL基础、oracle函数、oracle触发器、oracle高级查询、PL/SQL编程基础、PL/SQL存储过程等

    Oracle10g基础教程---附数据库和sql

    oracle 游标、存储过程、函数、触发器、优化; 所有sql可以直接运行; 此教程针对oracle初学者(要求有一定的sql基础) 每一条sql都为自己整理,有问题的话也可以联系我! 请参考系列文章:...

    oracle数据库删除触发器实例

     公文基础信息表(documentBaseInfo_tab)  AB角工作分工信息表(divideWork_tab)  公文督办基础信息表(superviseBaseInfo_tab)  人员在岗信息表(guardInfo_tab)  周工作计划信息表(planOfWeek_tab) /******...

    Oracle相关的速查知识汇总

    该项目记录了Oracle相关的速查知识汇总,主要涉及了oracle基础使用、SQL基础、oracle函数、oracle触发器、oracle高级查询、PL/SQL编程基础、PL/SQL存储过程等。若有新增,还将不断添加中。

    Oracle8i/9i数据库基础

    本讲稿(ORACLE8i 数据库基础)是作者在多年的工作和授课中的总结,主要包括两个部分,第一部分是ORACLE SQL*PLUS基础,主要讲述ORACLE 应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLE PL/SQL知识...

    Oracle8i_9i数据库基础

    本讲稿(ORACLE8i 数据库基础)是作者在多年的工作和授课中的总结,主要包括两个部分,第一部分是ORACLE SQL*PLUS基础,主要讲述ORACLE 应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLE PL/SQL...

    oracle存储过程超详细使用手册.

    oracle 存储过程的基本语法,关于oracle存储过程的若干问题备忘,oracle 存储过程语法总结及练习;oracle语法:Oracle触发器语法及实例基础知识(一)。

Global site tag (gtag.js) - Google Analytics