`
zgqynx
  • 浏览: 1341804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE触发器的一些知识

阅读更多
1、这是oracle的规定,不能对执行触发器的表进行操作。  
可以对new.xxx进行操作啊,

对于oracle行级触发器(for   each   row),不能对本表做任何操作,包括读取

原则:  
  在before   insert触发器中,可以实现对本表的访问;  
  在after   insert触发器中,不能实现对本表的访问;  
  在before/after   update/delete触发器中,都不能实现对本表的访问  
   
  其实原因很简单,就是为了防止脏读  

2、写oracle行级触发器时,不能操作本表,报"表 *** 发生了变化,触发器/函数不能读"的错误的解决办法
原因已经很明显了就是行级的触发器代码中不能操作该表,包括select,是挺郁闷的
当然解决方法就是要根据原因了,正因为限定了行级触发器的操作,只能选择表级的触发器了,但是在表级的触发器又不能获得:new和:old的值,那就只能采取两种触发器并用的方法了,并且还要包或者临时表加以辅助.

首先在行级触发器中将所需的,:new或者:old的值,写到包或者临时表中

然后在表级触发器中处理包或者临时表中已经写入的数据,操作成功后可以按照需求再删除临时表的数据.
3、 ORACLE 触发器

ORACLE产生数据库触发器的语法为:

create [or replace] trigger 触发器名 触发时间 触发事件

on 表名

[for each row]

pl/sql 语句

其中:

触发器名:触发器对象的名称。由于触发器是数据库自动执行

的,因此该名称只是一个名称,没有实质的用途。

触发时间:指明触发器何时执行,该值可取:

before---表示在数据库动作之前触发器执行;

after---表示在数据库动作之后出发器执行。

触发事件:指明哪些数据库动作会触发此触发器:

insert:数据库插入会触发此触发器;

update:数据库修改会触发此触发器;

delete:数据库删除会触发此触发器。

表 名:数据库触发器所在的表。

for each row:对表的每一行触发器执行一次。如果没有这一

选项,则只对整个表执行一次。

举例:下面的触发器在更新表auths之前触发,目的是不允许在

周末修改表:

create trigger auth_secure

before insert or update or delete //对整表更新前触发

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

end if;

end




   
 
分享到:
评论

相关推荐

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

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

    Oracle触发器与存储过程高级编程-第3版part2

    本书重点阐述了Oracle数据库服务器的核心概念:数据库表,索引,表空间,约束,触发器,PL/SQL. 本书针对程序员而编著,掌握一定编程知识会对学习本书有所帮助,但不是必需的。

    oracle 数据库 触发器

    oracle触发器的一些知识点,对于初学者和高手都有必要收藏

    Oracle触发器与存储过程高级编程-第3版part1

    本书重点阐述了Oracle数据库服务器的核心概念:数据库表,索引,表空间,约束,触发器,PL/SQL. 本书针对程序员而编著,掌握一定编程知识会对学习本书有所帮助,但不是必需的。

    oracle笔记触发器

    oracle笔记触发器,有具体的触发器代码案例,触发器的知识笔记!

    oracle存储过程及触发器总结

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

    oracle笔记(存储过程函数触发器游标流程控制等)

    oracle知识点笔记,语法,触发器,存储过程,存储函数,流程控制,游标,异常处理,记录类型,视图,控制用户权限,高级子查询,set运算符,基本的sql_Select语句等等

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

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

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

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

    oracle所有知识点笔记(全)

    这是我自己学习oracle的时候,写的代码案例和笔记,基本上每一个知识点都写的很清楚!大家可以作为参考! 该有的知识点都有! 基本的sql语法,触发器,存储过程,存储函数, 流程控制,游标,异常处理,记录类型,...

    Oracle相关的速查知识汇总

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

    触发器的相关知识与实例

    对Oracle数据库的触发器的总结,欢迎大家下载分享!

    oracle相关数据库的知识,包括建表语句,索引视图,触发器存储过程等

    oracle数据库备份与恢复oracle相关数据库的知识,包括建表语句,索引视图,触发器存储过程等

    oracle入门与高级知识ppt

    oralce入门知识,包括表的创建、数据库设计、存储过程、游标、触发器等、以及高级技术包括oracle的体系结构、安全管理等。

    oracle知识总结

    oracle系统学习总结包涵oracle的语法if else case when,触发器 游标函数等常用知识总结,希望对你有帮助!

    pl/sql试题,oracle基础知识

    oracle基础知识以及pl/sql试题,对提高存储过程和触发器知识有帮助,关于lock机制

    实验六-触发器实验报告.doc

    理解Oracle触发器的种类和用途 2. 掌握行级触发器的编写 [预备知识] 1. PL/SQL程序设计 [实验原理] 1. 建立触发器 CREATE [OR REPLACE] TRIGGER <触发器名> BEFORE"AFTER INSERT"DELETE"UPDATE OF <列名> ON <表名>...

    Oracle基础知识

    主要包含Oracle的基础知识,适合新手学习,归纳的比较清楚

    oracle培训教程ppt

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

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

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

Global site tag (gtag.js) - Google Analytics