oracle中before,Oracle中Before和After触发器的例子
做一个表的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触发器的例子相关推荐
- 根据镜像安装oracle插件,docker镜像alpine中安装oracle客户端
1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者. 一点限制: oracle数据库与本应用程序 ...
- ESX上ORACLE 10.2RAC(4.在REHAT4.7中安装ORACLE RAC)
四. 安装CRS软件 上传cluster软件到rac1,rac2的/home/oracle目录下 [root@rac1 ~]# cd /home/oracle [root@rac1 oracle]# ...
- 如何从Oracle数据库中的表中获取列名(字段名)列表?
如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...
- 如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中
如何将TXT,EXCEL或CSV数据导入ORACLE到对应表中 2011-05-12 14:19 方法一,使用SQL*Loader 这个是用的较多的方法,前提必须oracle数据中目的表已经 ...
- Oracle Dataguard中备库中归档日志不同步
环境:RAC+单机 Dataguard 问题:启动备库到ADG模式时,发现后台归档日志并不同步 1.在备库中发现日志的归档日志不同步,内容如下: MRP0: Background Media Reco ...
- pl sql如何调试oracle存储过程,PL/SQL Developer中调试oracle的存储过程
作者:iamlaosong 唉,真土,之前用Toad,1直用dbms_output.put_line调试存储进程,只觉得不方便,用上PL/SQL Developer后,习惯性的还是用这个方法,人都是有 ...
- PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法
PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 参考文章: (1)PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法 (2)https://www. ...
- 在Win7中安装Oracle 10g时检测报错的解决办法
在Windows 7中安装Oracle 10g. 使用的Orcale版本是10g. 步骤1: 在Orcale官网上下载,下载地址为:http://download.oracle.com/otn/nt/ ...
- java代码连接oracle数据库连接_在JAVA中连接Oracle数据库(例子)
* TODO 要更改此生成的文件的模板,请转至 * 窗口 - 首选项 - java - 代码样式 - 代码模板 */ package person.fane.test; import java.sql ...
- java oracle exp_java中使用oracle的exp/imp导出、导入数据
今天在学习的过程中遇到了一篇关于java中使用oracle导入导出的文章,感觉还不错,为了学习和以后工作的需要,我整理如下: String[] cmds=newString[3]; c ...
最新文章
- 机器学习常见的几个误区--逻辑回归的变量之间如果线性相关
- main函数第3个参数envp装的是什么(envp:环境变量)
- web开发常用的几种居中形式
- Spring Cloud Gateway不能使用外置tomcat部署的问题
- Nginx和lvs在负载均衡方面的对比
- jdbcTemplate小用总结
- jQuery Mobile中的页面加载与跳转机制
- 信息论与编码_4G与5G分别采用什么信道编码技术_卷积码_Turbo码_LDPC码_Polar码
- 计算广告学涉及的学科与技术
- 服务器系统开机密码怎么关闭,windows server2012怎么去除开机密码
- java fx scen,java基础:10.2 Java FX之显示图片
- 2022考研资料每日更新(2021.07.25)
- android 照片特效,Android使用Gallery实现照片拖动的特效
- 新年金市上行动力堪忧 美债收益率大幅上涨
- Java JDK 下载官方网站
- 数字化经济能力:产品原型展示
- Ubuntu 18.04 Mellanox ConnectX 网络适配器驱动安装
- 西工大计算机学院保研人数,陕西多所大学保研率超20%,西北工业大学27%,推免999人...
- FCN的学习及理解(Fully Convolutional Networks for Semantic Segmentation)
- 华工2020计算机应用基础校统考,2020年整合计算机应用基础(统考)·随堂练习2017秋华工答案名师精品资料...
热门文章
- 草根seo站长利用网站赚钱的方法
- iOS 生成二维码/条形码
- solr5.5.4 添加mysql数据,实现同步更新
- opensuse-KDE桌面下自定义快捷键,ctrl+alt+t打开konsole
- 在MAPGIS中,怎么投影多条线段?
- 大规模业务服务器开发总结
- linux 文件查找及定位
- YSlow使用指南_最新2.0使用指南中文版
- System.Net 类的最佳习惯
- php esi技术,Php环境搭建 – 巴黎高等计算机学院(ESI-SUPINFO)中国校区技术博客...