做一个表的insert的trigger,目的是只修改插入行的字段。

CREATE OR REPLACE TRIGGER TR_RME_SLOT

BEFORE  INSERT ON RME_SLOT

FOR EACH ROW

BEGIN

IF (:NEW.POSITION >= 0 AND :NEW.POSITION <10) THEN

:NEW.SLOT_NAME := '0'||TO_CHAR(:NEW.POSITION);

ELSE

:NEW.SLOT_NAME := TO_CHAR(:NEW.POSITION);

END IF;

END;

在插入以前就需要修改插入行;在trigger实现中并不需要用到update语句

同时,如果要在trigger中实现对本表记录的修改,则需要这样写:

CREATE OR REPLACE TRIGGER TR_RME_SLOT

AFTER  INSERT ON RME_SLOT

FOR EACH ROW

DECLARE

PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN

IF (:NEW.POSITION >= 0 AND :NEW.POSITION <10) THEN

UPDATE RME_SLOT  SET SLOT_NAME = '0'||TO_CHAR(:NEW.POSITION) WHERE SLOT_ID=:NEW.SLOT_ID;

ELSE

UPDATE RME_SLOT  SET SLOT_NAME = TO_CHAR(:NEW.POSITION) WHERE SLOT_ID=:NEW.SLOT_ID;

END IF;

COMMIT;

END;

注意多了一段DECLARE,同时在trigger结束时需要COMMIT

CREATE OR REPLACE TRIGGER tr_AfterUpdate

AFTER INSERT OR UPDATE

ON TEST_TRIGGER

FOR EACH ROW

DECLARE

PRAGMA AUTONOMOUS_TRANSACTION;

BEGIN

UPDATE TEST_TRIGGER

SET T_FACT = T_SALARY*(1-T_TAX)-T_EAT-T_HOUSE

WHERE T_NAME = :NEW.T_NAME;

COMMIT;

EXCEPTION

WHEN OTHERS THEN

-- Consider logging the error and then re-raise

RAISE;

END tr_testUpdate;

oracle中before,Oracle中Before和After触发器的例子相关推荐

  1. 根据镜像安装oracle插件,docker镜像alpine中安装oracle客户端

    1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者. 一点限制: oracle数据库与本应用程序 ...

  2. ESX上ORACLE 10.2RAC(4.在REHAT4.7中安装ORACLE RAC)

    四. 安装CRS软件 上传cluster软件到rac1,rac2的/home/oracle目录下 [root@rac1 ~]# cd /home/oracle [root@rac1 oracle]# ...

  3. 如何从Oracle数据库中的表中获取列名(字段名)列表?

    如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...

  4. 如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中

    如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中 2011-05-12 14:19 方法一,使用SQL*Loader      这个是用的较多的方法,前提必须oracle数据中目的表已经 ...

  5. Oracle Dataguard中备库中归档日志不同步

    环境:RAC+单机 Dataguard 问题:启动备库到ADG模式时,发现后台归档日志并不同步 1.在备库中发现日志的归档日志不同步,内容如下: MRP0: Background Media Reco ...

  6. pl sql如何调试oracle存储过程,PL/SQL Developer中调试oracle的存储过程

    作者:iamlaosong 唉,真土,之前用Toad,1直用dbms_output.put_line调试存储进程,只觉得不方便,用上PL/SQL Developer后,习惯性的还是用这个方法,人都是有 ...

  7. PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法

    PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 参考文章: (1)PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 (2)https://www. ...

  8. 在Win7中安装Oracle 10g时检测报错的解决办法

    在Windows 7中安装Oracle 10g. 使用的Orcale版本是10g. 步骤1: 在Orcale官网上下载,下载地址为:http://download.oracle.com/otn/nt/ ...

  9. java代码连接oracle数据库连接_在JAVA中连接Oracle数据库(例子)

    * TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql ...

  10. java oracle exp_java中使用oracle的exp/imp导出、导入数据

    今天在学习的过程中遇到了一篇关于java中使用oracle导入导出的文章,感觉还不错,为了学习和以后工作的需要,我整理如下: String[] cmds=newString[3];         c ...

最新文章

  1. 机器学习常见的几个误区--逻辑回归的变量之间如果线性相关
  2. main函数第3个参数envp装的是什么(envp:环境变量)
  3. web开发常用的几种居中形式
  4. Spring Cloud Gateway不能使用外置tomcat部署的问题
  5. Nginx和lvs在负载均衡方面的对比
  6. jdbcTemplate小用总结
  7. jQuery Mobile中的页面加载与跳转机制
  8. 信息论与编码_4G与5G分别采用什么信道编码技术_卷积码_Turbo码_LDPC码_Polar码
  9. 计算广告学涉及的学科与技术
  10. 服务器系统开机密码怎么关闭,windows server2012怎么去除开机密码
  11. java fx scen,java基础:10.2 Java FX之显示图片
  12. 2022考研资料每日更新(2021.07.25)
  13. android 照片特效,Android使用Gallery实现照片拖动的特效
  14. 新年金市上行动力堪忧 美债收益率大幅上涨
  15. Java JDK 下载官方网站
  16. 数字化经济能力:产品原型展示
  17. Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
  18. 西工大计算机学院保研人数,陕西多所大学保研率超20%,西北工业大学27%,推免999人...
  19. FCN的学习及理解(Fully Convolutional Networks for Semantic Segmentation)
  20. 华工2020计算机应用基础校统考,2020年整合计算机应用基础(统考)·随堂练习2017秋华工答案名师精品资料...

热门文章

  1. 草根seo站长利用网站赚钱的方法
  2. iOS 生成二维码/条形码
  3. solr5.5.4 添加mysql数据,实现同步更新
  4. opensuse-KDE桌面下自定义快捷键,ctrl+alt+t打开konsole
  5. 在MAPGIS中,怎么投影多条线段?
  6. 大规模业务服务器开发总结
  7. linux 文件查找及定位
  8. YSlow使用指南_最新2.0使用指南中文版
  9. System.Net 类的最佳习惯
  10. php esi技术,Php环境搭建 – 巴黎高等计算机学院(ESI-SUPINFO)中国校区技术博客...