------转自http://guocc.iteye.com/blog/2225063

REFERENCING OLD AS OLD NEW AS NEW FOR EACH Row

Sql代码  
  1. CREATE OR REPLACE TRIGGER TRI_DELETE_INFO
  2. AFTER DELETE ON T_INFO_2012
  3. REFERENCING OLD AS OLD NEW AS NEW
  4. FOR EACH ROW
  5. DECLARE
  6. V_SQLERRM VARCHAR2(200);
  7. BEGIN
  8. DELETE FROM T_INFO_2013 WHERE CODE = :OLD.CODE;
  9. --COMMIT; 触发器中不可以使用COMMIT;
  10. EXCEPTION
  11. WHEN OTHERS THEN
  12. V_SQLERRM := '触发器 TRI_DELETE_INFO 出错:' || SQLERRM;
  13. INSERT INTO PROCEDURE_LOG
  14. (ERRMSG, ERRDATE)
  15. VALUES
  16. (V_SQLERRM, SYSDATE);
  17. END;

1、For each row的意义是:在一次操作表的语句中,每操作成功一行就会触发一次;不写的话,表示是表级触发器,则无论操作多少行,都只触发一次;

2、REFERENCING OLD 和 REFERENCING NEW 的含义不同,具体取决于触发器是行级还是语句级触发器。对于行级触发器,REFERENCING OLD 子句允许引用更新或删除之前行中的值,REFERENCING NEW 子句允许引用已插入或更新的值。在 BEFORE 和 AFTER 触发器中可以引用 OLD 和 NEW 行。REFERENCING NEW 子句允许在插入或更新操作发生之前在 BEFORE 触发器中修改新行

3、:NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被删除的数据。

begin前面出现的new,old不加冒号,begin和end之间出现的new和old都要在前面加上":"。

REFERENCING OLD AS OLD NEW AS NEW
这样写之后就可以在begin end直接直接使用别名来引用。

转载于:https://www.cnblogs.com/linjiao/p/6899035.html

触发器 REFERENCING OLD AS OLD NEW AS NEW FOR EACH Row相关推荐

  1. Oracle学习笔记十三 触发器

    2019独角兽企业重金招聘Python工程师标准>>> 简介 触发器是当特定事件出现时自动执行的存储过程,特定事件可以是执行更新的DML语句和DDL语句,触发器不能被显式调用. 触发 ...

  2. oracle中创建触发器

    从csdn上面看到一个如何创建触发器的问题,感觉自己很有必要保存学习,特写下来: 条件: 现有A.B两张表 A: 工号 姓名 密码 性别 年龄 ... B: 工号 姓名 密码 当对A表中的" ...

  3. Oracle使用手册(三)---存储过程与触发器

    --存储过程 /**//* --1.过程的语法结构 --参见:http://newland.cnblogs.com/archive/2006/04/05/367531.html --2.执行存储过程 ...

  4. oracle触发器初始化,oracle – 触发器无法初始化变量

    我有触发审计,它存储了对任何EMP表行执行的操作. 这个触发器工作正常,除了在某些情况下(很少发生,我无法确定确切的条件)它给了我 Oracle错误:ORA-01400:无法插入NULL(" ...

  5. Oracle Study之--Oracle触发器(Trigger)

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

  6. oracle 触发器 学习笔记

    触发器 是特定事件出现的时候,自动执行的代码块.类似于存储过程,但是用户不能直接调用他们. 功能:  1. 允许/限制对表的修改  2. 自动生成派生列,比如自增字段  3. 强制数据一致性  4. ...

  7. ORACLE触发器具体解释

    ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容例如以下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 ...

  8. Oracle 触发器(上)

    一:概述 1.1:类型 1.1.1 DML触发器 ORACLE可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个行或语句操作上进行触发. 1.1.2替代触发器 由于在ORAC ...

  9. oracle 创建 触发,Oracle 创建触发器

    create or replace trigger DATA_SYNC_@TABLE@ before insert or update or delete on @TABLE@ REFERENCING ...

最新文章

  1. 达观杯_构建模型(四)贝叶斯
  2. CSS进阶(二十四)流向的改变
  3. VUEX源码学习笔记(第5~6章 共6章)
  4. 所谓情商高就是会说话
  5. [剑指offer]面试题第[1]题[JAVA][二维数组中的查找][数组][二分]
  6. $0,$#,$@,$+特殊符号的含义,shell的传递参数
  7. spring页面使用注解@RequestParam把请求参数封装到map中
  8. BerkeleyDB环境API
  9. iOS Xcode如何打包ipa安装包
  10. Android 属性动画
  11. springboot @Value无效原因
  12. 2016年求职找工作千万小心这些求职陷阱
  13. 构建ROP链实现远程栈溢出
  14. SPSS教程——进行数据的纵向和横向合并
  15. VH6501模板工程介绍(一)
  16. 中国大学生数学竞赛(非数学专业类)竞赛大纲
  17. 数据库系统概论 关系代数:专门的关系运算
  18. 古玩文物字画寄售系统源码/拍卖商城系统源码/竞拍系统源码转拍系统
  19. 国外能够使用替代Google Map 方案调研
  20. 了解Netsparker扫描器

热门文章

  1. PRML-系列一之1.2.5~1.2.6
  2. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
  3. python实现学生成绩聚类分析_聚类分析Python实现
  4. 【Tensorflow】深度学习实战01——Tensorflow实现简单的卷积网络(MNIST)
  5. 【图像处理】直方图均衡化(附带Matlab及OpenCV3自编程实现代码)
  6. 如何将多个文本数据转化为指定数据格式[以电影数据为例](数据预处理)
  7. 证明Ax=0的最小二乘解是ATA的最小特征值对应的特征向量(||x||=1)
  8. 计算机视觉基础---OpenCV框架与图像插值算法(图像伸缩)cpp+python
  9. Struts2访问Servlet的三种方式
  10. matlab话pca的双标图biplot,r – 用ggplot2绘制pca biplot